Replies (9)

  • @alar, JHC/AJHC — точно. Hugs — вообще интерпретатор емнип.
  • @alar, JHC и AJHC используют GREEN. На счёт остальных — не знаю. А что значит обходятся?
  • @alar, Ну то есть STG ни разу не единственный промежуточный язык для того чтобы покомпилять ленивые вычисления.
  • @segfault, ты так говоришь, как будто это что-то плохое. Интерпретатор — это же G-machine, то есть вполне может иметь внутри себя STGM.
  • @ndtimofeev, не единственный, но с виду довольно удачный
  • @alar, Это сложный вопрос. Начнём с того что он довольно удачный в формате задачи, где вызов или обращение к данным может внезапно закончится чем угодно. Это довольно хорошо для GHC с разделяемыми библиотеками, жирным волшебным рантаймом, тредами и регулярными изменениями компилятора. Для whole program оптимизации stg подходит плохо. Плюс в рамках той же модели исполнения что и stg, я видел полторы кейза с которыми ABC справляется лучше. Плюс в сравнение с тем же GRIN, stg сложнее компилировать. Ну и успех ghc обусловлен в основном богатством его фронтенда, а не красотой и изяществом пайплайна.
  • @ndtimofeev, довольно удачный тем, что легко положить на стрёмную архитектуру
    Успех GHC вообще ортогонален.
  • @alar, На стрёмную архитектуру в каком смысле?
  • @ndtimofeev, в смысле всяких встроенных стековых операций и прочего. Правда, нужен дешёвый доступ в память.