Meta Lenguaje

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
ML
Información general
Paradigma multiparadigma: imperativo, funcional
Apareció en 1973
Diseñado por Robin Milner y otros en la Universidad de Edimburgo
Tipo de dato tipificado estático, fuerte, tipificación inferida
Dialectos Standard ML, OCaml, F#
Influido por ISWIM
Ha influido a Miranda, Haskell, Cyclone, Nemerle, C++, Clojure, Felix, Mythryl

ML es un lenguaje de programación de propósito general de la familia de los lenguajes de programación funcional desarrollado por Robin Milner y otros a finales de los años 1970 en la Universidad de Edimburgo. ML es un acrónimo de Meta Lenguaje dado que fue concebido como el lenguaje para desarrollar tácticas de demostración en el sistema LCF (El lenguaje para el cual ML era meta lenguaje es pplambda, una combinación del cálculo de predicados de primer orden y el lambda-cálculo polimórfico sencillamente tipificado).

Frecuentemente se clasifica a ML como un lenguaje funcional impuro dado que permite programar imperativamente con efecto colateral, a diferencia de otros lenguajes de programación funcional, tales como Haskell.

Entre las características de ML se incluyen evaluación por valor, álgebra de funciones, manejo automatizado de memoria por medio de recolección de basura, polimorfismo parametrizado, análisis de estático de tipos, inferencia de tipos, tipos de datos algebraicos, llamada por patrones y manejo de excepciones. Esta combinación particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles[1].

En la actualidad varios lenguajes de la familia ML están disponibles, principalmente Standard ML (SML) y Ocaml (Ocaml contiene la sintaxis de ML como un subconjunto). Varias ideas aparecidas en ML han influido el diseño de otros lenguajes, tales como Cyclone y Nemerle.

Los lenguajes de la familia ML se aplican principalmente en diseño y manipulación de lenguajes de programación (compiladores, analizadores, demostradores de teoremas), así como en bioinformática, sistemas financieros, protocolos de sincronización, etc.

Enlaces externos[editar]