Articulo de referencia

Máquina de estados abstracta

En informática , una máquina de estados abstractos ( ASM ) es una máquina de estados que opera sobre estados que son estructuras de datos arbitrarias ( estructura en el sentido ...

En informática , una máquina de estados abstractos ( ASM ) es una máquina de estados que opera sobre estados que son estructuras de datos arbitrarias ( estructura en el sentido de la lógica matemática , es decir, un conjunto no vacío junto con una serie de funciones ( operaciones ) y relaciones sobre el conjunto).

Descripción general

El método ASM es un método de ingeniería de sistemas práctico y científicamente bien fundamentado que cierra la brecha entre los dos extremos del desarrollo de sistemas:

  • la comprensión y formulación humana de problemas del mundo real ( captura de requisitos mediante modelado preciso de alto nivel en el nivel de abstracción determinado por el dominio de aplicación dado).
  • el despliegue de sus soluciones algorítmicas mediante máquinas de ejecución de código en plataformas cambiantes (definición de decisiones de diseño, detalles del sistema y de la implementación).

El método se basa en tres conceptos básicos:

  • ASM : una forma precisa de pseudocódigo que generaliza las máquinas de estados finitos para operar sobre estructuras de datos arbitrarias.
  • modelo de suelo : una forma rigurosa de planos, que sirve como modelo de referencia autorizado para el diseño.
  • Refinamiento : un esquema muy general para la instanciación gradual de abstracciones de modelos a elementos concretos del sistema, que proporciona vínculos controlables entre las descripciones cada vez más detalladas en las sucesivas etapas del desarrollo del sistema.

En la concepción original de los ASM, un único agente ejecuta un programa en una secuencia de pasos, posiblemente interactuando con su entorno. Esta noción se extendió para abarcar los cálculos distribuidos , en los que múltiples agentes ejecutan sus programas simultáneamente.

Dado que los modelos ASM modelan algoritmos en niveles de abstracción arbitrarios, pueden proporcionar vistas de alto, bajo e intermedio nivel del diseño de un hardware o software. Las especificaciones de los modelos ASM suelen consistir en una serie de modelos ASM, que comienzan con un modelo base abstracto y avanzan hacia niveles de detalle mayores mediante refinamientos o simplificaciones sucesivas.

Debido a la naturaleza algorítmica y matemática de estos tres conceptos, los modelos ASM y sus propiedades de interés pueden analizarse utilizando cualquier forma rigurosa de verificación (mediante razonamiento) o validación (mediante experimentación, probando la ejecución del modelo).

Historia

El concepto de máquinas de Turing asistidas por algoritmos (ASM, por sus siglas en inglés) se debe a Yuri Gurevich , quien lo propuso por primera vez a mediados de la década de 1980 como una forma de mejorar la tesis de Turing de que todo algoritmo es simulado por una máquina de Turing apropiada . Formuló la tesis de las ASM : todo algoritmo, por abstracto que sea, es emulado paso a paso por una ASM apropiada. En el año 2000, Gurevich axiomatizó la noción de algoritmos secuenciales y demostró la tesis de las ASM para ellos. En resumen, los axiomas son los siguientes:

  • Los estados son estructuras,
  • La transición de estado involucra solo una parte delimitada del estado, y
  • Todo es invariante bajo isomorfismos de estructuras. (Las estructuras pueden considerarse álgebras , lo que explica el nombre original de álgebras evolutivas para los ASM).

La axiomatización y caracterización de algoritmos secuenciales se ha extendido a algoritmos paralelos e interactivos.

En la década de 1990, a través de un esfuerzo comunitario, [ 1 ] se desarrolló el método ASM, que utiliza ASM para la especificación y el análisis formales ( verificación y validación ) de hardware y software informático . Se han desarrollado especificaciones ASM completas de lenguajes de programación (incluidos Prolog , C y Java ) y lenguajes de diseño ( UML y SDL ).

Un relato histórico detallado se puede encontrar en otro lugar. [ 2 ] [ 3 ]

Existen diversas herramientas de software para la ejecución y el análisis de ASM.

Publicaciones

Libros

  • AsmBook: Egon Börger , Robert Stärk. Máquinas de estados abstractos: un método para el diseño y análisis de sistemas de alto nivel.
  • JBook: R.Stärk, J.Schmid, E.Börger. Java y la máquina virtual Java: definición, verificación, validación
  • Actas/Números de revistas (desde 2000)
    • 2008: Springer LNCS 5238 Máquinas de estados abstractos, B y Z
    • 2008: Número especial de J.UCS con artículos seleccionados de ASM'07 doi : 10.3217/jucs-014-12
    • 2006: Springer LNCS 5115 Métodos rigurosos para la construcción y el análisis de software , Seminario ASM y B. Dagstuhl
    • 2005: Número especial de Fundamenta Informatica con artículos seleccionados de ASM'05 ( actas electrónicas )
    • 2004: Springer LNCS 3052 Máquinas de estados abstractos 2004
    • 2003: Springer LNCS 2589 Abstract State Machines 2003: Advances in Theory and Practice
    • 2003: Número especial de TCS con artículos seleccionados de ASM'03
    • 2002: Informe del seminario de Dagstuhl: Teoría y aplicaciones de las máquinas de estados abstractos
    • 2001: J.UCS 7.11 Número especial con artículos seleccionados de ASM'01
    • 2000: Springer LNCS 1912 Abstract State Machines: Theory and Applications
  • Estudios de casos comparativos con contribuciones de la ASM
    • Control de calderas de vapor: Estudio de caso de especificación , Springer LNCS 1165
    • Célula de producción: Estudio de caso de desarrollo de software , modelo ASM
    • Railcrossing: Métodos formales para la computación en tiempo real , modelo ASM
    • Control de iluminación: Estudio de caso de ingeniería de requisitos , Seminario de Dagstuhl
    • Facturación: Estudio de caso sobre la recopilación de requisitos

Modelos de comportamiento para estándares industriales

  • OMG para BPMN (versión 2006): Springer LNCS 5316
  • OASIS para BPEL: IJBPMI 1.4 (2006)
  • ECMA para C#: "Una definición modular de alto nivel de la semántica de C#" doi : 10.1016/j.tcs.2004.11.008
  • ITU-T para SDL-2000: semántica formal de SDL-2000 y definición formal de SDL-2000 - Compilación y ejecución de especificaciones SDL como modelos ASM
  • IEEE para VHDL93: E. Boerger, U. Glaesser, W. Mueller. Definición formal de un simulador abstracto de VHDL'93 mediante EA-Machines. En: Carlos Delgado Kloos y Peter T. Breuer (Eds.), Formal Semantics for VHDL , pp.  107–139, Kluwer Academic Publishers, 1995.
  • ISO para Prolog: "Una definición matemática de Prolog completo" doi : 10.1016/0167-6423(95)00006-E

Herramientas

(en orden cronológico desde el año 2000)

  • El banco de trabajo ASM
  • ASMETA, el metamodelo de máquina de estados abstractos y su conjunto de herramientas.
  • AsmL
  • CoreASM , disponible en CoreASM, un motor de ejecución ASM extensible
  • AsmGofer en Archive.org
  • El proyecto de código abierto XASM en SourceForge

Bibliografía

  • Y. Gurevich, Evolving Algebras 1993: Lipari Guide , E. Börger (ed.), Specification and Validation Methods , Oxford University Press , 1995, 9-36. ( ISBN) 0-19-853854-5)
  • Y. Gurevich, Las máquinas de estados abstractos secuenciales capturan algoritmos secuenciales , ACM Transactions on Computational Logic 1(1) (julio de 2000), 77–111.
  • R. Stärk, J. Schmid y E. Börger, Java y la máquina virtual Java: definición, verificación, validación , Springer-Verlag , 2001. ( ISBN 3-540-42088-6)
  • E. Börger y R. Stärk, Máquinas de estados abstractos: un método para el diseño y análisis de sistemas de alto nivel , Springer-Verlag , 2003. ( ISBN 3-540-00702-4)
  • E. Börger y A. Raschke, Compañero de modelado para profesionales de software , Springer-Verlag , 2018. [ 4 ] ( ISBN 978-3-662-56639-8, doi : 10.1007/978-3-662-56641-1 )

Referencias

  1. Bowen, Jonathan P. (2021). «Comunidades y ancestros asociados con Egon Börger y ASM». En Raschke, Alexander; Riccobene, Elvinia; Schewe, Klaus-Dieter (eds.). Lógica, computación y métodos rigurosos: ensayos dedicados a Egon Börger con motivo de su 75 cumpleaños . Lecture Notes in Computer Science . Vol. 12750. Springer International Publishing . pp. 96–120 . doi : 10.1007/978-3-030-76020-5_6 . ISBN   978-3-030-76019-9. S2CID 235414337 . 
  2. "Página principal de AsmBook" . Italia: Universidad de Pisa . Noviembre de 2005. Consultado el 8 de junio de 2021 .(Capítulo 9)
  3. Börger, Egon (2002). "Los orígenes y el desarrollo del método ASM para el diseño y análisis de sistemas de alto nivel" . Journal of Universal Computer Science . 8 (1). doi : 10.3217/jucs-008-01-0002 .
  4. ^ Bowen, Jonathan P. (noviembre de 2018). "Egon Börger y Alexander Raschke: compañero de modelado para profesionales del software". Aspectos formales de la informática . 30 (6): 761– 762. doi : 10.1007/s00165-018-0472-4 . S2CID 53086556 . 
  • Máquinas de estados abstractas
  • AsmCenter archivado el 13 de septiembre de 2019 en Wayback Machine .
  • El conjunto de herramientas TASM: especificación, simulación y verificación formal de sistemas en tiempo real.