stringtranslate.com

Máquina de estados abstractos

En informática , una máquina de estados abstracta ( 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 une los dos extremos del desarrollo de sistemas:

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

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 amplió para abarcar los cálculos distribuidos , en los que varios agentes ejecutan sus programas simultáneamente.

Dado que los algoritmos de modelado de ASM se basan en niveles arbitrarios de abstracción, pueden proporcionar vistas de alto, bajo y medio nivel de un diseño de hardware o software. Las especificaciones de ASM suelen constar de una serie de modelos de ASM, comenzando con un modelo básico abstracto y avanzando hacia niveles mayores de detalle en sucesivos refinamientos o ajustes.

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, pruebas de ejecuciones del modelo).

Historia

El concepto de ASM 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 cada algoritmo es simulado por una máquina de Turing apropiada . Formuló la Tesis ASM : cada algoritmo, sin importar lo abstracto que sea, es emulado paso a paso por una ASM apropiada. En 2000, Gurevich axiomatizó la noción de algoritmos secuenciales y demostró la tesis ASM para ellos. En términos generales, los axiomas son los siguientes:

La axiomatización y caracterización de algoritmos secuenciales se han 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 formal y el análisis ( verificación y validación ) de hardware y software de computadoras. Se han desarrollado especificaciones ASM integrales de lenguajes de programación (incluidos Prolog , C y Java ) y lenguajes de diseño ( UML y SDL ).

Se puede encontrar un relato histórico detallado en otro lugar. [2] [3]

Hay varias herramientas de software disponibles para la ejecución y análisis de ASM.

Publicaciones

Libros

Modelos de comportamiento para estándares industriales

Herramientas

(en orden histórico desde 2000)

Bibliografía

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 . Apuntes de clase en informática . Vol. 12750. Springer International Publishing . págs. 96–120. doi :10.1007/978-3-030-76020-5_6. ISBN 978-3-030-76019-9. Número de identificación del sujeto  235414337.
  2. ^ "Página de inicio 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.

Enlaces externos