Oz (lenguaje de programación)
# Oz (lenguaje de programación)

Oz es un lenguaje de programación multi-paradigma.

Oz fue originalmente desarrollado en el laboratorio de Programación de Sistemas en la Universidad de Saarland por Gert Smolka y sus estudiantes a comienzos de 1990. En 1996 el desarrollo de Oz continuó en cooperación con el grupo de investigación de Seif Haridi en el Instituto Sueco de Ciencias de la Computación. Desde 1999, Oz ha sido continuamente desarrollado por un grupo internacional, el Consorcio Mozart, que estuvo compuesto originalmente por la Universidad de Saarland, el Instituto Sueco de Ciencias de la Computación, y la Universidad Católica de Lovaina. En 2005, la responsabilidad de gestionar el desarrollo de Mozart fue transferida a un grupo base, el Tablero Mozart, con el propósito expreso de abrir el desarrollo de Mozart a una comunidad mayor.

Oz tiene una implementación de gran calidad, el Sistema de Programación Mozart, que fue liberado bajo una licencia de Código Abierto por el Consorcio Mozart. Mozart ha sido portado a diferentes plataformas como Unix, FreeBSD, Linux, Microsoft Windows y Mac OS X.

El lenguaje de programación Oz es la interfaz de usuario del sistema de composición musical mediante restricciones Strasheela.

## Características del lenguaje

Oz contiene una forma simple y bien hecha de la mayoría de los conceptos de los principales paradigmas de programación, incluyendo programación lógica, funcional, imperativa, orientada a objetos, con restricciones, distribuida, concurrente. Oz tiene una semántica formal simple y una implementación eficiente, el Sistema de Programación Mozart. Oz es un lenguaje orientado a la concurrencia, término introducido por Joe Armstrong, el principal diseñador del lenguaje Erlang. Un lenguaje orientado a la concurrencia hace a la concurrencia fácil de usar y eficiente.

Como complemento a la programación multiparadigma, las principales ventajas de Oz radican en la programación con restricciones y la programación distribuida. Debido a su diseño, Oz implementa un modelo de programación distribuido que hace a la red transparente. Este modelo hace fácil programar aplicaciones abiertas y tolerantes de fallos en el lenguaje. Para programación con restricciones, Oz introduce la idea de espacios de computación, los cuales permiten búsquedas definidas por el usuario y estrategias de distribución que son ortogonales al dominio de restricciones.

