Lenguaje Z


Lenguaje Z
Lenguaje Z.

El Lenguaje Z es un lenguaje formal utilizado en Ingeniería del software para la especificación formal de un sistema de cómputo, como una fase previa al desarrollo del código de programa para el mismo en un lenguaje de programación. Fue desarrollado por Jean-Raymond Abrial mientras formaba parte del Grupo de investigación en Programación del Laboratorio de computación de la Universidad de Oxford.[1]

El lenguaje Z se basa en la teoría de conjuntos, el cálculo lambda y la lógica de primer orden. En Z se definen construcciones denominadas esquemas para describir el espacio de estados del sistema y las operaciones que sobre el mismo se efectúan. En los esquemas se declaran variables y predicados que afectan los valores de las variables declaradas.[2]


Contenido

Ejemplo

Descripción Epecificación en Z
El ejemplo de especificación en Z mostrado en la imagen se encuentra en el libro de Spivey,[2] es un sencillo ejemplo de un sistema de manejo de una agenda de cumpleaños. Ha sido adaptado para este artículo gracias a la herramienta Z-eves.[3] [4]

En la primera línea podemos observar la declaración de dos conjuntos, el conjunto de todos los nombres: NOMBRE y el conjunto de todas las fechas: FECHA, en la especificación se los declara como tipos básicos.

El primer esquema que vemos: AgendaCumple es el esquema principal de la especificación y define el espacio de estados del sistema. En el mismo se definen las variables: contactos (como el conjunto de nombres cuyos cumpleaños están agendados – subconjunto de todos los nombres - ) y cumple como una función parcial con dominio en el conjunto NOMBRE e imagen en el conjunto FECHA; en la siguiente parte del esquema se define una condición o invariante del sistema, que en este caso indica que el conjunto contactos es igual al dominio de la función cumple.

El esquema IniciarAgendaCumple representa el estado inicial del sistema.

Los siguientes esquemas definen las operaciones que se realizan sobre el sistema:

El esquema AgregarCumple especifica la operación de agregar un nuevo cumpleaños, la letra griega delta delante del nombre del esquema principal, indica que luego de esta operación se producirá un cambio de estado, luego se declaran dos variables: nombre? y fecha?, la decoración (?), indica que son variables de entrada; las condiciones que se declaran son que los valores de la variable nombre? NO deben pertenecer al conjunto contactos y que el estado inmediato posterior del conjunto cumple (cumple') es igual al estado anterior unión la upla conformada por el nombre y la fecha ingresadas.

El esquema BuscarCumple especifica la operación de búsqueda de un cumpleaños dado un nombre, se puede apreciar que las variables de salida poseen la decoración (!), en este caso la letra griega theta delante del nombre del esquema principal, denota que esta operación no producirá un cambio de estados. Aquí las condiciones son que los valores de la variable de entrada nombre? deben pertenecer al conjunto contactos y que el valor de la variable de salida fecha! será igual al valor devuelto por la función cumple aplicada al valor de la variable nombre?

Finalmente el esquema Recordatorio especifica la operación que dada un fecha, el sistema nos devuelve el conjunto de los cumpleaños que ocurren en la misma, como puede verse tampoco modifica el estado del sistema y la condición indica que la variable de salida tarjetas! deberá ser igual al conjunto de nombres tal que al aplicar la función cumple sobre cualquiera de ellos el resultado es igual al valor del la variable de entrada hoy?

Especificación en Z.

Estándar

El lenguaje Z logró el estandar ISO en el 2002. Se puede obtener una copia directamente en el sitio de la ISO.[5]


Herramientas

Referencias

  1. Jean-Raymond Abrial, Stephen A. Schuman and Bertrand Meyer: A Specification Language, in On the Construction of Programs, Cambridge University Press, eds. A. M. Macnaghten and R. M. McKeag, 1980 (describes early version of the language). ISBN 0-521-23090-X
  2. a b J. Michael Spivey (1992). The Z Notation: A reference manual (Segunda edición). Prentice Hall International Series in Computer Science. ISBN 0139785290. http://spivey.oriel.ox.ac.uk/mike/zrm/. 
  3. «Z/Eves — Un tester de pruebas para el Lenguaje Z» (en alemán). Consultado el 20 de abril de 2010.
  4. «Documentación y manuales sobre Z/EVES». Consultado el 20 de abril de 2010.
  5. (1 MB PDF) Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics. pp. 196 pages. http://standards.iso.org/ittf/PubliclyAvailableStandards/c021573_ISO_IEC_13568_2002(E).zip. 

Lectura recomendada

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • lenguaje — sustantivo masculino 1. Sistema de comunicación entre los miembros de una misma especie: el lenguaje de las abejas. 2. Capacidad humana para comunicar ideas o sentimientos: la adquisición del lenguaje. 3. Sistema de comunicación humano: el… …   Diccionario Salamanca de la Lengua Española

  • lenguaje — (Del prov. lenguatge). 1. m. Conjunto de sonidos articulados con que el hombre manifiesta lo que piensa o siente. 2. lengua (ǁ sistema de comunicación verbal). 3. Manera de expresarse. Lenguaje culto, grosero, sencillo, técnico, forense, vulgar.… …   Diccionario de la lengua española

  • lenguaje — m. Facultad de comunicación de los pensamientos o sentimientos hacia un receptor mediante un sistema de signos orales, aunque puede reflejarse en un código escrito. Medical Dictionary. 2011. lenguaje …   Diccionario médico

  • Lenguaje — ► sustantivo masculino 1 LINGÜÍSTICA Conjunto de sonidos articulados con que el hombre manifiesta lo que piensa o siente. 2 LINGÜÍSTICA Sistema de comunicación y expresión verbal propio de un pueblo o nación, o común a varios. SINÓNIMO lengua 3… …   Enciclopedia Universal

  • Lenguaje — Para lenguaje informático, véase Lenguaje informático. Se llama lenguaje (del provenzal lenguatgea y este del latín lingua) a cualquier tipo de código semiótico estructurado, para el que existe un contexto de uso y ciertos principios… …   Wikipedia Español

  • lenguaje — {{#}}{{LM L23640}}{{〓}} {{SynL24216}} {{[}}lenguaje{{]}} ‹len·gua·je› {{《}}▍ s.m.{{》}} {{<}}1{{>}} Facultad humana que permite la comunicación y la expresión del pensamiento: • Una lesión cerebral puede impedir el desarrollo del lenguaje.{{○}}… …   Diccionario de uso del español actual con sinónimos y antónimos

  • lenguaje — s m 1 Conjunto de señales o signos que permite a los seres humanos comunicar lo que piensan o sienten, generalmente mediante sonidos articulados en palabras o mediante algún otro medio sensible: lenguaje escrito, el lenguaje de la fotografía, el… …   Español en México

  • lenguaje — ■ Si a los cultos estuviera confiado dar el aliento a los idiomas, todavía estaríamos hablando en latín. (Alfonso Reyes) ■ El único lenguaje verdadero en el mundo es un beso. (Alfred De Musset) ■ La lengua es lo mejor y lo peor que poseen los… …   Diccionario de citas

  • lenguaje — (m) (Básico) capacidad de los seres humanos de expresar emociones y pensamientos mediante palabras u otros signos; idioma usado por una comunidad Ejemplos: Los sordomudos tienen un lenguaje que no es universal sino que es diferente dependiendo… …   Español Extremo Basic and Intermediate

  • lenguaje — Informática. Conjunto de instrucciones que pueden ser entendidas por un ordenador, y que es empleado por los programadores para desarrollar aplicaciones nuevas. Se pueden distinguir lenguajes de alto y bajo nivel. Los de alto nivel o de… …   Diccionario de Economía Alkona