Всем бобра!
Я продолжаю упарываться развлекаться со своим ЯП. Вопрос мучает: во что транслировать AST (abstract syntax tree)? В си, кресты, obj c?
Итак, основные черты ЯП:
1. Императивный
1. Строгая типизация
1. Синтаксис из livescript (который берёт корни из haskell и coffeescript)
В будущем:
1. ООП в духе питона (это потом, пока пофиг)
1. ADT http://en.wikipedia.org/wiki/Tagged_union
Это то в чём я уверен. Понимание остального приходит в процессе. Так вот, синтаксическое дерево уже делается. Вопрос, а как AST преобразовать в код? И во что лучше генерить?
Мне изначально предлагали использовать llvm, но для меня это ад. Я хотел остановиться на си т.к. немного его знаю. Однако потом потянуло на cpp т.к. там много батареек и уже есть, например, классы и генерики. В целом си и плюсы нравятся тем что у них беспроблемное сопряжение с системными либами. А может вообще тут objective C лучше?
Вторая проблема это чем генерить код. К сожалению, ничего толкового для кодогенерации не нагуглил. Есть только вот такой костыль для облегчения жизни: http://www.codeproject.com/Articles/571645/Really-simple-Cplusplus-code-gener... . Проекты типа cython, shedskin итп используют свои громоздкие костыли. Получается, надо городить что-то своё?
cast tailgunner