August 5th, 2007

Book

Я ИЗОБРЁЛ!

- Ты знаешь сколько потребуется энергии для преодоления гравитации???
- Ну я же изобрел!

© Ералаш
Я изобрел новый Язык. Язык языков, метаязык. В течение трех дней уже бьюсь головой об пол. Синтаксис - обрезанный до отсутствия всего Хаскел. Интерпретатор и компиляторы в Perl и Javascript/HTA с unreferenced code elimination занимают 140 (!) строк жесткого Перла. Плюс библиотеки с функциями рантайма для ЖС и Перла по 140 и 85 строк соответственно.

В ближайших планах:
  • Компилятор в Си++ (+10 строк). Ессно без сборки мусора. Но наверное строк 250 кода библиотеки будет.
  • Bootstrap - перенос компилятора на Язык и доведение библиотеки до такого состояния, чтобы компилятор компилировал сам себя.
  • Модули.
  • Статическая верификация, похожая на проверку типов. Но в языке будет отсутствовать возможность декларации типов - все типы будут выводиться. Сейчас её нет, при несовпадении получаете по голове эррором в рантайме.
  • Доведение библиотеки до Turing completeness. Пока в рантайме есть только функции, которые я использовал для написания медленного примера на Haskell. Ессно IO без IO Monad (но когда-нибудь будет либо она, либо static uniqueness enforcement, как в Clean).
  • Компиляторы в Haskell, C# и другие языки, в которых есть возможность передавать в функцию другую функцию или легко эмулировать это.
Язык задумывался как экспериментальный, с минимальной грамматикой (парсится примитивным рекурсивным нисходящим безоткатным парсером на двух регулярных выражениях) и минимальным объемом кода компилятора-интерпретатора. Поэтому язык по возможности не будет расширяться - надо будет только import добавить для поддержки модулей, а так всех поддерживаемых фич (их одна) уже хватает. Поэтому же код получается несколько многословным для коммерческого использования, но в совсем уж отдаленном будущем планируется использовать его как бэкенд для более мощного языка.