2022

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

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

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

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

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

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

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

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

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

Выступил сегодня на семинаре ruSTEP (=Russian seminar on Software Engineering, Theory and Experimental Programming, https://persons.iis.nsk.su/ru/ruSTEP). На странице семинара будет выложено видео. Презентацию выкладываю, там в конце есть список использованных материалов.

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

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