fbpx
Wikipedia

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]

Lenguaje Z.

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]


Ejemplo

Descripción Especificació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 una 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 estándar ISO en el 2002. Se puede obtener una copia directamente en el sitio de la ISO.[5]

Herramientas

  • ERZ - Herramienta basada en Web para integrar paradigmas de integración, específicamente transforma del modelo entidad relación a su equivalente en lenguaje Z, desarrollada en PHP por Luis Espino, Guatemala.
  • Fastest una herramienta de testeo de código abierto para el Lenguaje Z.
  • - Es un chequeador de tipos para lenguaje Z.
  • HOL-Z entorno de prueba de código abierto para Z en Isabelle/HOL
  • Z Word Tools - Permite escribir especificaciones en Microsoft Word.
  • .
  • (sitio en Alemán)

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. J. Michael Spivey (1992). (Segunda edición). Prentice Hall International Series in Computer Science. ISBN 9780139785290. Archivado desde el original el 9 de octubre de 2008. Consultado el 27 de abril de 2010. 
  3. (en alemán). Archivado desde el original el 19 de mayo de 2009. 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). pp. 196 pages. Archivado desde el original el 10 de marzo de 2007. 

Lectura recomendada

  • Jim Davies and Jim Woodcock (1996). . Prentice Hall International Series in Computer Science. ISBN 0-13-948472-8. Archivado desde el original el 27 de junio de 2009. 
  • Jonathan Bowen (1996). . International Thomson Computer Press. ISBN 1-85032-230-9. Archivado desde el original el 9 de abril de 2010. Consultado el 27 de abril de 2010. 
  • Jonathan Jacky (1997). The Way of Z: Practical Programming with Formal Methods. Cambridge University Press. ISBN 0-521-55976-6. 

Enlaces externos

  • Herramientas para el desarrollo y testeo de especificaciones Z en Microsoft Word
  • Proyecto(CZT)
  • The World Wide Web Virtual Library: The Z notation, por Jonathan Bowen
  • W3C WSDL 2.0 Un ejemplo de especificación en Z con aserciones y explicaciones.
  • Z/EVES Documentación y manuales sobre Z/EVES
  •   Datos: Q1430781

lenguaje, lenguaje, formal, utilizado, ingeniería, software, para, especificación, formal, sistema, cómputo, como, fase, previa, desarrollo, código, programa, para, mismo, lenguaje, programación, desarrollado, jean, raymond, abrial, mientras, formaba, parte, g. El Lenguaje Z es un lenguaje formal utilizado en ingenieria del software para la especificacion formal de un sistema de computo como una fase previa al desarrollo del codigo de programa para el mismo en un lenguaje de programacion Fue desarrollado por Jean Raymond Abrial mientras formaba parte del Grupo de investigacion en Programacion del Laboratorio de computacion de la Universidad de Oxford 1 Lenguaje Z El lenguaje Z se basa en la teoria de conjuntos el calculo lambda y la logica 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 efectuan En los esquemas se declaran variables y predicados que afectan los valores de las variables declaradas 2 Indice 1 Ejemplo 2 Estandar 3 Herramientas 4 Referencias 5 Lectura recomendada 6 Enlaces externosEjemplo EditarDescripcion Especificacion en ZEl ejemplo de especificacion 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 cumpleanos Ha sido adaptado para este articulo gracias a la herramienta Z eves 3 4 En la primera linea podemos observar la declaracion de dos conjuntos el conjunto de todos los nombres NOMBRE y el conjunto de todas las fechas FECHA en la especificacion se los declara como tipos basicos El primer esquema que vemos AgendaCumple es el esquema principal de la especificacion y define el espacio de estados del sistema En el mismo se definen las variables contactos como el conjunto de nombres cuyos cumpleanos estan agendados subconjunto de todos los nombres y cumple como una funcion parcial con dominio en el conjunto NOMBRE e imagen en el conjunto FECHA en la siguiente parte del esquema se define una condicion o invariante del sistema que en este caso indica que el conjunto contactos es igual al dominio de la funcion 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 operacion de agregar un nuevo cumpleanos la letra griega delta delante del nombre del esquema principal indica que luego de esta operacion se producira un cambio de estado luego se declaran dos variables nombre y fecha la decoracion 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 union la upla conformada por el nombre y la fecha ingresadas El esquema BuscarCumple especifica la operacion de busqueda de un cumpleanos dado un nombre se puede apreciar que las variables de salida poseen la decoracion en este caso la letra griega theta delante del nombre del esquema principal denota que esta operacion no producira un cambio de estados Aqui 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 sera igual al valor devuelto por la funcion cumple aplicada al valor de la variable nombre Finalmente el esquema Recordatorio especifica la operacion que dada una fecha el sistema nos devuelve el conjunto de los cumpleanos que ocurren en la misma como puede verse tampoco modifica el estado del sistema y la condicion indica que la variable de salida tarjetas debera ser igual al conjunto de nombres tal que al aplicar la funcion cumple sobre cualquiera de ellos el resultado es igual al valor del la variable de entrada hoy Especificacion en Z Estandar EditarEl lenguaje Z logro el estandar ISO en el 2002 Se puede obtener una copia directamente en el sitio de la ISO 5 Herramientas EditarERZ Herramienta basada en Web para integrar paradigmas de integracion especificamente transforma del modelo entidad relacion a su equivalente en lenguaje Z desarrollada en PHP por Luis Espino Guatemala Fastest una herramienta de testeo de codigo abierto para el Lenguaje Z Fuzz Es un chequeador de tipos para lenguaje Z HOL Z entorno de prueba de codigo abierto para Z en Isabelle HOL Z Word Tools Permite escribir especificaciones en Microsoft Word ZETA sistema de codigo abierto para el desarrollo de especificaciones en Z Z Eves Un tester de pruebas para el Lenguaje Z sitio en Aleman Referencias Editar 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 a b J Michael Spivey 1992 The Z Notation A reference manual Segunda edicion Prentice Hall International Series in Computer Science ISBN 9780139785290 Archivado desde el original el 9 de octubre de 2008 Consultado el 27 de abril de 2010 Z Eves Un tester de pruebas para el Lenguaje Z en aleman Archivado desde el original el 19 de mayo de 2009 Consultado el 20 de abril de 2010 Documentacion y manuales sobre Z EVES Consultado el 20 de abril de 2010 Information Technology Z Formal Specification Notation Syntax Type System and Semantics 1 MB PDF pp 196 pages Archivado desde el original el 10 de marzo de 2007 Lectura recomendada EditarJim Davies and Jim Woodcock 1996 Using Z Specification Refinement and Proof Prentice Hall International Series in Computer Science ISBN 0 13 948472 8 Archivado desde el original el 27 de junio de 2009 Jonathan Bowen 1996 Formal Specification and Documentation using Z A Case Study Approach International Thomson Computer Press ISBN 1 85032 230 9 Archivado desde el original el 9 de abril de 2010 Consultado el 27 de abril de 2010 Jonathan Jacky 1997 The Way of Z Practical Programming with Formal Methods Cambridge University Press ISBN 0 521 55976 6 Enlaces externos EditarEspecificaciones propuestas por Ian Toyn Herramientas para el desarrollo y testeo de especificaciones Z en Microsoft Word Proyecto CZT The World Wide Web Virtual Library The Z notation por Jonathan Bowen Type Checker para Z por Mike Spivey W3C WSDL 2 0 Un ejemplo de especificacion en Z con aserciones y explicaciones Z EVES Documentacion y manuales sobre Z EVES Datos Q1430781 Obtenido de https es wikipedia org w index php title Lenguaje Z amp oldid 133884217, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos