Frege (Frege)
Frege | |
---|---|
Класс языка | функциональный, с ленивыми вычислениями |
Появился в | 2011 |
Автор | Ingo Wechsung |
Расширение файлов |
.fr |
Выпуск |
|
Система типов | статическая, сильная, с выводом типов |
Испытал влияние | Java и Haskell |
Лицензия | BSD license |
Сайт | github.com/Frege/frege |
ОС | Cross-platform |
Frege — функциональный язык программирования, близкий к Haskell, реализованный поверх JVM и позволяющий использовать любые Java-библиотеки.
История
[править | править код]Рассказывая об истории языка Frege, Ingo Wechsung вспоминает, как он в 2003-2004 познакомился с концепцией вывода типов в языке ML, а затем прочитал статью Саймона Пейтон-Джонса, в которой был пример реализации проверки типов на Haskell. Будучи в то время Perl-программистом, Инго сначала начал экспериментировать с реализацией этого алгоритма на Perl. Полученная реализация типизированного лямбда-исчисления (Frege 1) оказалась слишком медленной для применения на практике[2].
В 2006-2007 Инго начал работу над транслятором Frege 2, переписанном ради быстродействия на Java. Начинался Frege как экспериментально-учебный проект, цель которого была — изучение концепций современного функционального программирования. В 2007 году Инго начал вести блог fregepl.blogspot.com[3], где описывал свои эксперименты[2].
Певоночально получившийся язык не отличался чистотой концепции и не относился ни к языкам со строгими вычислениями, ни к языкам с ленивыми вычислениями. Затем автор поставил себе цель реализовать подмножество хаскеля, которая была более-менее достигнута к маю 2011 года, когда Frege был опубликован на google code[2].
В 2015 году, среди участников конференции JavaOne, был проведён опрос о том, какой альтернативный Java язык, работающий поверх JVM, они предпочитают. Первое место занял Frege[4].
Примеры
[править | править код]module Hello where greeting friend = "Hello, " ++ friend ++ "!" main args = do println (greeting "World")
Примечания
[править | править код]- ↑ Release 3.23.288 — 2015.
- ↑ 1 2 3 Paul Krill. Frege joins Scala, Clojure among Java functional languages . InfoWorld (2 октября 2014). Дата обращения: 21 января 2016. Архивировано 28 января 2016 года.
- ↑ Frege Programming Language: What is frege (or what will it be)? fregepl.blogspot.ru (28 сентября 2007). Дата обращения: 23 января 2016. Архивировано 4 марта 2016 года.
- ↑ На JavaOne сравнили популярность языков, работающих поверх виртуальной машины Java // Открытые системы. — 2015. — № 11. Архивировано 26 января 2016 года.
Литература
[править | править код]- Sergio De Simone. Frege: a Haskell-like Language for the JVM . InfoQ (12 августа 2015). Дата обращения: 21 января 2016.
- Paul Krill. Frege joins Scala, Clojure among Java functional languages . InfoWorld (2 октября 2014). Дата обращения: 21 января 2016.
- Dierk König and Ingo Wechsung. Frege Goodness.
Ссылки
[править | править код]- Проект Frege на сайте GitHub
- fregepl.blogspot.com (англ.) — официальный блог
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |