Тривиль

Тривиль 08.01.2023

На конец праздничных дней (между выпить/закусить, выездами на природу и прочими развлечениями): доделана генерация в Си сделана компиляция программы из нескольких модулей (есть пара недоделок) Вот пример (модули в отдельных файлах, […]

Я закончил проход по лексическому, синтаксическому и семантическому анализу. Сделано все, кроме: может-быть ссылок и операций с ними импорта оператора выбора Попутно, дочистил грамматику, сделал несколько полезных изменений. Например, сделал […]

Стандартные функции, увы, нужны. Например, для дин массивов (slices) в Го есть функции: len, cap (capacity), make, append и copy, работающие с любыми слайсами (независимо от типа элемента). Необходимый минимум […]

Тривиль - планомерное движение

После перехода от изготовления сквозного «скелета» компилятора к планомерному продвижению, сделано: парсер, практически полный, кроме «может быть» типов и null safety операторов — это оставлю на потом, надо еще обдумать. […]

Тривиль - первый кусочек не-совсем-тривиля

Маленький кусочек не совсем тривиального: в идентификаторе можно использовать пробелы и завершать его знаками ‘?’ и ‘!’. Например: фн Операция завершена?(): Лог если Операция завершена?() & ответ = Беда! { […]

Тривиль - факториал

Компилируется и работает: На этом создание скелета компилятора закончено. Теперь пойду более последовательно — парсер, семантический анализ, генерация.  

Перенес из комментария, там уже слишком много. Денис Будяк пишет: «Алексей, тему полиморфизма можно дальше обсуждать. Например, аналог interface{} в Активном Обероне уже есть, хотя работает только для записей, но […]

1) Оператор return — как он должен называться в русскоязычном языке? вернуть? — не очень хорошо, если результата нет (процедура, а не функция) возврат? другое? 2) Преобразование типа и динамическая […]

Второй заход: весь синтаксис (вроде бы), кроме определения «разделителя» — нужен для избавления от лишних ‘;’ и нет лексики, где определение идентификатора — это самое интересное. Я нашел пригодное решение […]

У меня нет сомнений, что любой язык, чуть более развитый, чем Тривиль должен быть null safe. Что же касается Тривиля, то здесь не так однозначно. Стоит ли вносить null safety? […]