Ответ 1
Вот список нескольких интересных систем. Это не является исчерпывающим!
Динамически типизированный и скомпилированный
-
Компилятор Gambit Scheme, Chez Scheme, будет компилятором Scinger Clinger Linger, Bigloo Компилятор схемы и, возможно, многие другие.
Почему?
Многим людям очень нравится Scheme. Программы как данные, хорошая макросистема, 35 лет развития, большое сообщество. Но они хотят производительности. Следовательно, ряд хороших компиляторов с собственным кодом - Chez Scheme - это даже успешный коммерческий продукт (интерпретируемые байт-коды бесплатные, собственные коды, за которые вы платите).
-
Компилятор LuaJIT "точно в срок" для Lua.
Почему?
Чтобы показать, что это можно сделать. И потом, людям стало нравиться получать 3-кратное ускорение в своих программах Lua. Lua находится во многих играх, где важна производительность, плюс она ползут и к другим продуктам. 70% кода в Adobe Lightroom - Lua.
-
iconc
Icon -to-C компилятор.Почему?
Пятьдесят человек, которые использовали его, любили Икона. Совершенно необычная модель оценки, самая инновационная (и, на мой взгляд, лучшая) система струйной обработки, когда-либо созданная. Но эта модель оценки была действительно дорогой, особенно на компьютерах конца 1980-х годов. Комбинируя Icon в C, Icon Project позволил запускать большие программы Icon за меньшее количество часов.
Заключение: люди сначала разрабатывают привязанность к динамически типизированному языку и, вероятно, важную базу кода. В конце концов, сообщество выплескивает компилятор с собственным кодом, чтобы вы могли повысить производительность и решить большие проблемы.
Статичная типизация и интерпретация
Эта категория встречается реже, но...
-
Objective Caml. Диалект ML, автомобиль для множества инновационных экспериментов по языковому дизайну.
Почему?
Очень портативная система и очень быстрое время компиляции. Люди любят оба свойства, поэтому новые идеи дизайна языка широко освещаются.
-
Москва МЛ. Стандартный ML с несколькими дополнительными функциями системы модулей.
Почему?
Портативное, быстрое время компиляции, легко сделать интерактивный цикл чтения /eval/print. Стал популярным обучающим компилятором.
-
С-Терп. Старый продукт, я думаю, может быть, от Gimpel Software. Saber C — продукт, который я не думаю, что вы можете купить больше.
Почему?
Debugging. Особенно, отладка оборудования 1980-х годов под MS-DOS. Для очень небольшого количества ресурсов вы могли бы получить действительно хорошую помощь, отлаживая код C на очень ограниченном оборудовании (думаю: процессор 4.77MHz с 8-битной шиной, 640K RAM полностью загружен). Почти невозможно получить хороший визуальный отладчик для скомпилированного кода, но с интерпретатором, довольно легко.
-
UCSD Pascal - система, которая сделала "P-код" домашним словом.
Почему?
Учителя любили дизайн языка Никлауса Вирта, и компилятор мог работать на очень маленьких машинах. Дизайн Wirth и UCSD P-system сделали непревзойденную комбинацию, а Pascal был стандартным языком обучения 1970-х годов. Младшим людям может быть трудно понять, что в 1970-х годах не было дебатов о том, какой язык преподавать в первом курсе. Сегодня я знаю программы, использующие C, С++, Haskell, Java, ML и Scheme. В 1970-х годах это был всегда Pascal, и P-система UCSD была большой причиной.
Если вам интересно, P стоял за переносной.
Резюме. Интерпретация статически типизированного языка - отличный способ быстро реализовать реализацию для всех. (Это также имело преимущества для отладки оборудования Bronze Age.)