Рефал-суперкомпиляция.
Это язык программирования Рефал и некоторая идея под названием суперкомпиляция. Последняя была выше моего понимания и таковой и остается.
Вот
здесь пытались ее коммерчески проэксплуатировать.
От работающего у нас
Аркадия Климова сегодня узнал, что этот суперкомпилятор был написан на Moscow ML
(
Read more... )
Comments 207
Reply
Сейчас начнется священная война, по поводу что лучше: динамическая али статическая типизация :)
Reply
Reply
А теперь остаётся запастись попкорном :)
Reply
Reply
Reply
У меня был (ну и сейчас есть, конечно) народ, достаточно серьезно, для своего возраста, занимавшийся компиляторами.
Reply
Народ - это сильно. ;)
Что за компиляторы?
Reply
Reply
А как?
Reply
Очень приближенно - входной язык парсят в AST (abstract syntax tree), оптимизируют AST, и преобразуют AST обратно в текстовую форму.
В реальности наверное AST компилируют в промежуточные языки не очень низкого уровня и оптимизируют представление программы в этих промежуточных языках, а затем последний промежуточный язык в цепочке компилируют обратно в AST.
Что именно Вам непонятно?
Reply
Reply
Reply
Не понимаю.
В первом случае статическая типизация как бы и не нужна особо, хотя пригождается.
Во втором она просто необходима, а иначе как поддерживать это спагетти?
Reply
Во втором случае статическая типизация смерти подобна. Разница налицо во всяких ява/C#-фреймворках и Rails.
Reply
Ты код на Хаскеле или Камле давно смотрел?
Попробуй повыводить типы для каждой отдельной функции, даже для тех, что находятся в let/where, выполняя подъем лямбд (lambda lifting) для не определенных внутри функций.
По моим подсчетам, 60-80% кода полиморфно.
Reply
A Small Positive Supercompiler in Scala
http://code.google.com/p/spsc/
Reply
Жаль, что я Скалу практически не понимаю. ;)
Reply
Leave a comment