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 (англ.) — официальный блог
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.