Re: Nemerle & Nitra
От: Kolesiki  
Дата: 14.01.17 16:05
Оценка:
По поводу статьи "Описание языка описания расширяемых парсеров «Nitra»":

Замечание глобальное: много деталей, за которыми не видно леса. Напоминает автогенерённую документацию по аннотациям методов. Если человеку вывалить все инструменты сразу, он просто офигеет и потеряется! Но если по очереди доставать инструменты для каждой задачи, всё будет легко и понятно.

Калькулятор. Самый ужасный, порочный и неправильный пример в области компиляторов — он даёт совсем другое представление о работе, нежели должно быть при работе с АСТ. Мне кажется, куда удобнее был бы простейший язык, типа:

a = 4 + 6 * 3 // переменные и две операции разного приоритета
? a + 1 // печать выражения


Для этого языка создаётся грамматика, АСТ, а затем генерируется код да на том же C#! Но главное, это именно тот процесс, который должен пройти каждый джедай компиляторов — грамматика, дерево разбора, АСТ, связывание имён, обход дерева, генерация кода. Минимальность языка гарантирует, что мы не потеряемся в дебрях, а "разнообразие" — что мы обязательно задействуем основные инструменты Нитры. Разумеется, нужно в каждом удобном случае объяснять, чем нам помогла Нитра, сделав работу за нас.

Да, и ни слова не увидел про ту бриллиантовую фичу, ради которой был потрачен целый год исследований — восстановление после ошибок. Его тоже неплохо бы описать: что мы имели ДО него, что имеем сейчас и как это здорово (лучше в применении к конкретному примеру на игрушечном языке).

После такого примера будет легче увидеть, что за всемогутер у нас в руках — просто перечисление фич не даст ощутить всю (по)мощь Нитры.
Отредактировано 14.01.2017 20:30 VladD2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.