The Wayback Machine - https://web.archive.org/web/20221028230708/https://baike.sogou.com/kexue/d10379.htm

抽象状态机

编辑

在计算机科学中,抽象状态机(ASM)是对任意数据结构(数学逻辑层面的结构,包括一个非空数据集合,以及集合上的一些函数(操作)和数据关系)的状态进行操作的状态机。

ASM方法是一种实用的、有科学依据的系统工程方法,为系统开发的两端搭起一座桥梁:

  • 人类对现实世界问题的理解和表达(依照特定应用领域规定的抽象层级进行精准的高层建模从而提炼出的需求)
  • 执行代码的机器在不同平台上对算法方案的实施(即设计决策、系统和实现细节的规定说明)

该方法基于三个基本概念:

  • ASM:一套格式严谨的伪代码,可将有限状态机泛化到任意数据结构上的操作
  • 基础模型:严格的蓝图格式,可作为设计的权威参考模型
  • 细化:一个通用方案,可将模型抽象逐步实例化为具体的系统元素,系统开发的持续过程中,在越来越多更细化的描述之间建立可操控的连接

在ASM的最初概念中,单个代理按照一系列步骤执行程序,并可能会与其环境进行交互。这个概念被扩展到了分布式计算领域,其间多个代理可同时执行它们的程序。

由于ASM可在任意抽象层次上对算法建模,因此它们可以提供硬件或软件设计的高级、低级和中级视图。ASM规范通常由一系列的ASM模型组成,从抽象的基础模型开始,通过持续的求精或提炼进行更深层次的细化。

根据这三个概念的算法和数学属性,可以使用任何形式严谨的验证(通过推理)或校验(通过实验、运行测试模型)来分析ASM模型及其感兴趣的属性。

1 历史编辑

ASM的概念来源于尤里·古列维奇(Yuri Gurevich),他在20世纪80年代中期首次提出这一概念,作为对图灵理论的一种改进,即每种算法都由适当的图灵机进行模拟。他表述了ASM理论:每一个算法,无论多抽象,都可由一个合适的抽象状态机(ASM)逐步模拟出来。2000年,古列维奇将顺序算法的概念进行了公理化,并证明了该算法的ASM理论。大致上,公理如下所述:状态是结构,状态转移只涉及到状态的一个有界部分,并且在结构同质情况下,一切都是不变的。(结构可以被看作是代数,这就解释了抽象自动机(ASM)的最初名称是演化代数)顺序算法的公理化和表达已经扩展到并行和交互式算法。

在20世纪90年代,通过社区的努力,ASM方法被开发出来,人们把ASM用作计算机硬件和软件的正式规范和分析(验证和校验)。编程语言(包括Prolog、C和Java)和设计语言(UML和SDL)的ASM综合规范也已经开发出来了。详细的历史记录可以在AsmBook(第9章)或本文(参考文献)中找到。

很多用于ASM执行和分析的软件工具也已面世。

2 出版物编辑

2.1 图书

  • ASMbook:阿斯布克:埃贡·伯格,罗伯特·斯特尔克。《抽象状态机:一种高层系统设计和分析的方法》
  • JBook: 史塔克、施密德、伯格。《Java和Java虚拟机:定义、验证、校验》
  • 学报/期刊发表(自2000年起)
    • 2008年:斯普林格出版社LNCS 5238  抽象状态机,B和Z
    • 2007年:加州大学洛杉矶分校特刊和ASM  07年论文选集
    • 2006年:斯普林格出版社LNCS 5115   软件构建和分析之严谨方法, ASM和达格斯塔尔研讨会
    • 2005年:抽象状态机(ASM)05年论文选集基本信息特刊(电子学报)
    • 2004年:斯普林格出版社LNCS 3052    抽象状态机2004
    • 2003年:斯普林格出版社LNCS 2589   抽象状态机2003:理论与实践的进展
    • 2003年: 抽象状态机(ASM)03年论文选集TCS特刊
    • 2002年:达格斯塔尔研讨会报告   抽象状态机的理论和应用
    • 2001年:抽象状态机(ASM)01年论文选集J.UCS 7.11 1特刊
    • 2000年:斯普林格出版社·LNCS 1912    抽象状态机:理论与应用
  • 采用了抽象状态机(ASM)方法的对比案例研究
    • 蒸汽锅炉控制:规范案例研究,斯普林格出版社LNCS 1165
    • 生产单元:软件开发案例研究,ASM模型
    • 铁路道口:实时计算的形式方法,ASM模型
    • 灯光控制:需求工程之案例研究,达格斯图尔研讨会
    • 开票:需求提取的案例研究

2.2 工业标准的实现模型

  • OMG for BPMN(2006版):斯普林格出版社LNCS 5316
  • OASIS for BPEL::IJBPMI 1.4 (2006年)
  • ECMA for C#:TCS 336(2006)
  • ITU-T for SDL-2000:SDL-2000的形式语义和SDL-2000的形式定义-按ASM模型编译和运行SDL的规范说明
  • IEEE for VHDL93:通过EA-machines给出抽象 VHDL'93模拟器的形式定义。作者:卡洛斯·德尔加多·克洛斯和彼得·布鲁尔(编辑)。VHDL的形式语义学,第107-139页,Kluwer学术出版社,1995年
  • ISO for Prolog:完整Prolog的数学定义

3 工具编辑

(按2000年以来年代顺序)

  • ASMETA, 抽象状态机元模型及其工具集
  • AsmL
  • CoreASM,可在CoreASM获取,它是一个可扩展的ASM执行引擎
  • AsmGofer
  • XASM开源项目
阅读 34
版本记录
  • 暂无