Frege | |
---|---|
clase de idioma | funcional , con evaluación perezosa |
Apareció en | 2011 |
Autor | Ingo Wechsung |
extensión de archivo | .fr |
Liberar |
|
sistema de tipos | estático , fuerte , con tipo de inferencia |
sido influenciado | Java y Haskell |
Licencia | licencia BSD |
Sitio web | github.com/frege/frege |
sistema operativo | multiplataforma |
Frege es un lenguaje de programación funcional cercano a Haskell , implementado sobre la JVM y que le permite usar cualquier biblioteca de Java .
Hablando sobre la historia del lenguaje Frege, Ingo Wechsung recuerda cómo conoció el concepto de inferencia de tipos en ML en 2003-2004 y luego leyó un artículo de Simon Peyton-Jones que tenía un ejemplo de implementación de verificación de tipos en Haskell . Siendo un programador de Perl en ese momento, Ingo primero comenzó a experimentar con la implementación de este algoritmo en Perl . La implementación resultante del cálculo lambda tipificado (Frege 1) resultó ser demasiado lenta para el uso práctico [2] .
En 2006-2007, Ingo comenzó a trabajar en el traductor Frege 2, reescrito en Java para aumentar la velocidad . Frege comenzó como un proyecto educativo experimental, cuyo propósito era estudiar los conceptos de la programación funcional moderna . En 2007, Ingo comenzó a bloguear fregepl.blogspot.com [3] , describiendo sus experimentos [2] .
El lenguaje resultante no se distinguió por su pureza de concepto y no fue ni un lenguaje de evaluación estricta ni un lenguaje de evaluación perezosa . Luego, el autor estableció el objetivo de implementar un subconjunto de Haskell, que se logró más o menos en mayo de 2011 cuando Frege se publicó en el código de Google [2] .
En 2015, se realizó una encuesta entre los participantes de la conferencia JavaOne sobre qué lenguaje Java alternativo que se ejecuta sobre la JVM prefieren. El primer lugar fue para Frege [4] .