Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Categories:

Я ИЗОБРЁЛ!

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

© Ералаш
Я изобрел новый Язык. Язык языков, метаязык. В течение трех дней уже бьюсь головой об пол. Синтаксис - обрезанный до отсутствия всего Хаскел. Интерпретатор и компиляторы в 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 добавить для поддержки модулей, а так всех поддерживаемых фич (их одна) уже хватает. Поэтому же код получается несколько многословным для коммерческого использования, но в совсем уж отдаленном будущем планируется использовать его как бэкенд для более мощного языка.
Tags: compiler design, hn0
Subscribe

  • Верифицированный лигаси-фри стек в пару рыл за 20 лет

    Всех, кто обладает квалификацией, чтобы пиздануть что-то уместное по этой теме, я знаю поимённо, но они молчат - т.е. скорее всего просто эти мои…

  • Contracts first

    Тут из альтернативной вселенной сообщают, что завтипы говно и не нужны. Вместо этого берете язык с простыми типами и контрактами в стиле Eiffel…

  • Implementing Algebraic Effects in C “Monads for Free in C”

    Тут проскочила ссылка на пейпер. Не радуйтесь, там это лапша из setjmp/long jump, а не rust-style zero cost.

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments