Привет. У меня есть наброски своего языка программирования, теперь думаю как лучше его реализовать. Цель - создать быстрый и практичный язык для продакшена, чтобы писать на нём проги, а не просто сделать, поиграться и выбросить. И мой вопрос не в том как сделать язык вообще, а именно как сделать лучше.
Язык планируется общего назначения, высокоуровневый, с автоматическим управлением памятью, многопоточный, мультипарадигменный, js-подобный, скрипты будут во время выполнения компилироваться на лету в байт-код или в машинный код, который будет сохраняться на hdd и впоследствии будут загружаться именно он.
Хотелось бы выслушать мнение профессионалов, какие есть косяки в известных языках и компиляторах, чтобы не повторить их снова, какие есть тонкие моменты, которые стоит учесть.
По поводу самого языка:
1. Нужны ли классы? Мне нравится прототипное программирование и я не понимаю, зачем тогда нужно класс-ориентированное. Какие преимущества даёт класс по сравнению с прототипом?
2. Как лучше организовать области видимости? В разных языках это устроено по разному и трудно понять как именно лучше и удобнее в работе
3. Какие фичи лично вам бы хотелось видетьв новом ЯП?
По поводу реализации:
1. Байт-код или машинный код? И если первое, то регистровая машина или стековая?
2. Какие есть рекомендации по разработке сборщика мусора и оптимизатора?
3. Как лучше организовать возможность обращения к объектам программы извне? В частности, как хранить в скомпилированной программе метаданные (имена и типы переменных)?
4. Какие посоветуете готовые разработки, которые можно приспособить для своего языка? Компиляторы, виртуальные машины, генераторы парсеров, библиотеки, среды разработки?
5. Как вообще лучше реализовать jit-компилятор?
Перемещено tailgunner из development