Обновить
129
Ivan Kochurkin@KvanTTT

Software Developer at JetBrains (Kotlin Compiler)

59
Подписчики
Отправить сообщение
Походу компиляторы на хабре не пользуются особой популярностью — комментариев, замечаний и вопросов почти нет.

А жаль, зря тогда я так старался.
>> уверенность
Ее во всех делах любят.
Спасибо большое за информацию!
Есть одна перспективная, как мне кажется, идея, связанная с Kinect ;)
После невероятно глючного убожества D-Link DIR-400 я больше ничего от D-Link не куплю и никому не порекомендую.
У полной версии еще:
  • Выше частота процессора: 384 против 320 МГц. Но это не критично и «исправляется перепайкой резистора».
  • Есть USB. А значит можно подключить сетевой принтер или жесткий диск и сделать ftp или svn сервер, что важно (во всяком случае для меня).
Ага, особенно после DLink dir-400.
Такое впечатление, что «его собирали пьяные китайцы, чтобы поугарать над пользователями»!
>> 3) Малый порог вхождения и простота разработки

Для Native Client можно будет писать приложения на Mono, т.е. на C#.
Я считаю это большой плюс, поскольку C#разработчики теперь смогут делать кроссплатформенные RIA приложения (Silverlight не в счет).
Ну с Photoshop может и не очень хорошая идея в браузере запускать, а вот кое-что другое было супер.
А я — после вашего :)
Я один прочитал сначала «языковые проблемы» как «языковые пробелы»?
В МГТУ им. Баумана требуются эти разделы, хотя это и университет.
Ну и какие есть аргументы, кроме того, что он вам больше всего нравится?

>> Из особенностой можно отметить отсутствие деления на лексер и парсер, а так же то, что писать парсер приходиться на Nemerle.

Вы наверное хотели сказать, код, который использует парсер, нужно писать на Nemerle? Потому что парсер писать вообще не надо — для этого и используются генераторы.

Судя по этому и этому сравнениям, единственным адекватным конкурентом для ANTLR является Gold Parser. Он основан на LALR синтезе.

Если сравнивать его с ANTLR, то основными преимуществами являются:
  • 1. Скорость работы.
  • 2. Допустимость левой рекурсии.
  • 3. Поддержка большего количества языков.
  • 4. Более красивый интерфейс (нет мелких шрифтов, как в ANTLR под Windows).

А недостатки следующие:
  • 1. Сложновоспринимаемый человеком код лексера и парсера.
  • 2. Необходимость приведения грамматики к форме Бэкуса-Наура.
3. Работает только под Windows (ANTLR на Java, а значит кроссплатформенная).

Или хотя бы перенести этот пост в «Компиляторы».
Кстати, ваше замечание про оператор Case было прямо в точку.
Именно этот оператор не реализован у меня в генерации кода, поскольку это оказалось слишком ресурсозатратно для меня ;) (Этот проект вообще идет в качестве 4 лабораторных по курсу «Конструирование компиляторов»).

Теперь я подумаю, стоит ли для него сделать генерацию или нет.
Смотрите: оператор case всегда должен возвращать статический тип, как и остальные операторы. Этот тип определяется на этапе компиляции по выражениям expr1...exprn.

А у вас тоже почти все верно написано: в Case вводятся как бы локальные переменные x1,…, xn с соответствующими типами, которые затем могут использоваться в выражениях expr1,…, exprn.
Я не до конца разъяснил: результат в операторе Case получается как если бы мы несколько раз применили поиск «наиболее общего близкого предка» поочередно к выражениям expr1,…, exprn, которые справа.
А про «as» у вас верно написано.
12 ...
264

Информация

В рейтинге
5 631-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность