Войти
ФлеймФорумПрограммирование

дизайню С++ подобный ЯП.

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 Следующая »
#0
18:19, 4 июля 2016

Всем привет.

открыте вопросы:.
а что если не делать сырых указателей и ссылок вообще? // тоесть память будет доступна только через asm-вставки.
а что если для доступа к элементам массива использовать только круглые скобки? // arr(i)=10;
а что если использовать квадратные скобки только для шаблонов? // std::vector[int] arr;
а что если поощрять копирование и считать его бесплатным? // а вдруг после оптимзации оно правда окажется бесплатным? ну хотябы иногда?


#1
18:42, 4 июля 2016

А что если не задавать дурных вопросов?

#2
20:14, 4 июля 2016

А что если масштабировать?

#3
20:37, 4 июля 2016

А что если бомжевать?

#4
20:41, 4 июля 2016

А что если перднуть в лужу?

#5
20:45, 4 июля 2016

nexter
> А что если перднуть в лужу?
То на геймдев.ру зарегистрируется еще один пользователь.
А если в лужу насрать - то станет одним участником больше. Народная примета.

#6
21:14, 4 июля 2016

Adler
http://www.gamedev.ru/flame/forum/?id=215211

// не делать сырых указателей
Круто.

// круглые скобки
Откажись от них - пусть везде будут квадратные.

// для шаблонов
Откажись от шаблонов - замени их чем-нибудь более вменяемым

// ---
Допустим, у твоего языка будет свой редактор кода.
Когда в нём жмакаеш на F9, то он копирует файлы в промежуточный нормальный с++,
и скармливает их привычным компиляторам ...

#7
21:57, 4 июля 2016
а что если для доступа к элементам массива использовать только круглые скобки? // arr(i)=10;
а что если поощрять копирование и считать его бесплатным? // а вдруг после оптимзации оно правда окажется бесплатным? ну хотябы иногда?

Ада?
#8
1:16, 5 июля 2016

Adler
> открыте вопросы:.
> а что если не делать сырых указателей и ссылок вообще?
Получится скриптовый язык в котором ногу прострелить нельзя, можно потыкать палочкой с закруглённым концом
> тоесть память будет доступна только через asm-вставки.
Наркоман штоли?
> а что если для доступа к элементам массива использовать только круглые скобки? arr(i)=10;
Ничего не изменится кроме того что появится путаница в парсере, что же означает открытая скобка? Выражение? Вызов функции? или индекс массива? Охохо!
> а что если использовать квадратные скобки только для шаблонов? //
> std::vector[int] arr;
Точно наркоман, реши сначала предыдущую проблему с круглыми скобочками.
> а что если поощрять копирование и считать его бесплатным? // а вдруг после
> оптимзации оно правда окажется бесплатным? ну хотябы иногда?
Или окажется или не окажется. Странный вопрос. Как сделаешь, так и окажется.

#9
8:26, 5 июля 2016

Adler
> а что если не делать сырых указателей и ссылок вообще?
Получится жаба или шарпы.
> а что если для доступа к элементам массива использовать только круглые скобки?
Твоим языком будет пользоваться мало людей, т. к. 99% программистов сейчас пишут на языках, где индексирование производится через квадратные скобки. Переучиваться на круглые будет им западло.
> а что если использовать квадратные скобки только для шаблонов?
Опять же, приверженцы C++, Java, Rust будут не в восторге.
> а что если поощрять копирование и считать его бесплатным?
Бесплатно не получится.

Советую, если у тебя есть серьёзные намерения, не пытаться изобрести новый синтаксис и бредовые фичи, а лучше подумать над тем, что требуется от языка, и какими средствами это нужно достигать.

#10
8:49, 5 июля 2016

kvakvs
> Вызов функции? или индекс массива? Охохо!
А что тебе не нравится? Массив - это функция, возвращающая ссылку на i-ый элемент.

#11
8:53, 5 июля 2016

Panzerschrek[CN]
> > а что если использовать квадратные скобки только для шаблонов?
> Опять же, приверженцы C++, Java, Rust будут не в восторге.
Да пофиг на них. А приверженцы Д его поддержат. Языком тээса не будет пользоваться даже сам тс, так зачем городить сложный парсер?

#12
8:57, 5 июля 2016

Лол. Предлагаю, сперва, попользоваться С++, а потом дизайнить что-то похожее на него.

#13
9:03, 5 июля 2016

ArchiDevil
> Лол. Предлагаю, сперва, попользоваться С++, а потом дизайнить что-то похожее на него.
Я ему предлагаю взять кланг + ллвм и встроить туда свою систему безопасности\песочницу раз она так ему нужна. Там довольно читаемый код, если что. Не то что в gcc

#14
9:05, 5 июля 2016

laMer007
> А что тебе не нравится? Массив - это функция, возвращающая ссылку на i-ый
> элемент.

Логичней смотреть на это так - у массивов перегрузка operator() возвращает ссылку на i-ый элемент. Причём, судя по тому, что прямого доступа к памяти нет, эта перегрузка обязана быть asm-вставкой, т.к. нужно посчитать нужный адрес. Логично. Распространяем дальше - у функций тоже есть перегрузка operator(), которая опять таки есть суть asm-вставка, причём шаблонная, variadic template, делающая push/push/call. Уже что-то...
Распространяем дальше - перегрузить operator() можно у самых разных типов и классов типов. Например для строк всё та же индексация, как у массивов, очевидна. Но идем дальше - у целых чисел перегрузка operator() тоже может быть. 10(20)+5 - корректное выражени. Отлично.
Распространяем дальше - вызов конструктора MyClass() по сути тоже operator() примененный к экземпляру метакласса. Т.е. метаклассы - check. Виртуальные конструкторы - check. MyClass.name и MyClass.parent - валидные выражения. Супер.
Распространяем дальше - методы объектов тоже сущности у которых перегружен operator(), т.е. obj.meth это суть экземпляр делегата, у которого можно инвокнуть operator() и, возможно, даже перегрузить. Делегаты - check. obj.class.getMethod( "print" ).invoke( obj, "hello, world! ) - валидное выражение. Божественно!

Вот тут уже язык вырисовывается. Методология. Система. Принципы.

Страницы: 1 2 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.