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 educación 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 Consorcio Mozart, 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 amplia.

El sistema de programación de Mozart es la implementación principal de Oz. Se lanza con una licencia de código abierto por el Consorcio Mozart. Mozart se ha portado a Unix , FreeBSD , Linux , Windows y macOS .

Oz [2] contiene la mayoría de los conceptos de los principales paradigmas de programación , incluyendo programación lógica, funcional ( evaluación perezosa y evaluación ansiosa ), 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 principal diseñador 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 de múltiples paradigmas, 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 fallos dentro del lenguaje. Para la programación de restricciones, Oz introduce la idea de espacios de cálculo , que permiten estrategias de búsqueda y distribución definidas por el usuario ortogonales al dominio de restricción.

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