Oz (lenguaje de programación)


Oz es un lenguaje de programación multiparadigma , desarrollado en el Laboratorio de Sistemas de Programación de la Université catholique de Louvain , para la enseñanza de lenguajes de programación. Tiene un libro de texto canónico: Conceptos, técnicas y modelos de programación de computadoras .

Oz fue diseñado por primera vez por Gert Smolka y sus estudiantes en 1991. En 1996, el desarrollo de Oz continuó en cooperación con el grupo de investigación de Seif Haridi y Peter Van Roy en el Instituto Sueco de Ciencias de la Computación . Desde 1999, Oz ha sido desarrollado continuamente por un grupo internacional, el Mozart Consortium, que originalmente estaba formado por la Universidad de Saarland , el Instituto Sueco de Ciencias de la Computación y la Université catholique de Louvain . En 2005, la responsabilidad de gestionar el desarrollo de Mozart se transfirió a un grupo central, la Junta de Mozart, con el propósito expreso de abrir el desarrollo de Mozart a una comunidad más grande.

El Sistema de Programación de Mozart es la implementación principal de Oz. Se publica con una licencia de código abierto por el Mozart Consortium. Mozart ha sido portado a Unix , FreeBSD , Linux , Windows y macOS .

Oz [2] contiene la mayoría de los conceptos de los principales paradigmas de programación , incluida la programación lógica, funcional (tanto la evaluación perezosa como la evaluación entusiasta ), imperativa, orientada a objetos, restringida, distribuida y concurrente. Oz tiene una semántica formal simple (ver el capítulo 13 del libro mencionado a continuación) y una implementación eficiente. [ cita requerida ] Oz es un lenguaje orientado a la concurrencia , ya que el término fue introducido por Joe Armstrong, el diseñador principal del lenguaje Erlang . Un lenguaje orientado a la concurrencia hace que la concurrencia sea fácil de usar y eficiente. Oz apoya una canónicalenguaje de interfaz gráfica de usuario (GUI) QTk. [3]

Además de la programación multiparadigma, las principales fortalezas de Oz se encuentran en la programación restringida y la programación distribuida . Debido a su diseño factorizado, Oz puede implementar con éxito un modelo de programación distribuida transparente a la red. Este modelo facilita la programación de aplicaciones abiertas y tolerantes a fallas dentro del lenguaje. Para la programación de restricciones, Oz introduce la idea de los espacios de cálculo , que permiten estrategias de distribución y búsqueda definidas por el usuario ortogonales al dominio de la restricción.

Oz se basa en un lenguaje central con muy pocos tipos de datos que se pueden extender a otros más prácticos a través del azúcar sintáctico .