Тритикале
- 1 year ago
- 0
- 0
Frege — функциональный язык программирования , близкий к Haskell , реализованный поверх JVM и позволяющий использовать любые Java- библиотеки .
Рассказывая об истории языка Frege, Ingo Wechsung вспоминает, как он в 2003-2004 познакомился с концепцией вывода типов в языке ML , а затем прочитал статью Саймона Пейтон-Джонса , в которой был пример реализации проверки типов на Haskell . Будучи в то время Perl -программистом, Инго сначала начал экспериментировать с реализацией этого алгоритма на Perl . Полученная реализация типизированного лямбда-исчисления (Frege 1) оказалась слишком медленной для применения на практике .
В 2006-2007 Инго начал работу над транслятором Frege 2, переписанном ради быстродействия на Java . Начинался Frege как экспериментально-учебный проект, цель которого была — изучение концепций современного функционального программирования . В 2007 году Инго начал вести блог fregepl.blogspot.com , где описывал свои эксперименты .
Певоночально получившийся язык не отличался чистотой концепции и не относился ни к языкам со строгими вычислениями , ни к языкам с ленивыми вычислениями . Затем автор поставил себе цель реализовать подмножество хаскеля, которая была более-менее достигнута к маю 2011 года, когда Frege был опубликован на google code .
В 2015 году, среди участников конференции , был проведён опрос о том, какой альтернативный Java язык, работающий поверх JVM , они предпочитают. Первое место занял Frege .
module Hello where greeting friend = "Hello, " ++ friend ++ "!" main args = do println (greeting "World")