擴展狀態變遷模型語言

擴展狀態變遷模型語言

Estelle是一種基於擴展有限狀態自動機的形式化描述語言,是由ISO/TC97/SC21/WGI/SUBGROUP B定義的。

基本介紹

  • 中文名:擴展狀態變遷模型語言
  • 外文名:Extended State Transition Model Language
  • 簡稱:Estelle
  • 定義:基於擴展有限狀態自動機的語言
  • 系統:計算機
  • 套用學科:計算機原理
概述,基本模型,編譯器,

概述

Estelle是一種基於擴展有限狀態自動機的形式化描述語言,是由ISO/TC97/SC21/WGI/SUBGROUP B定義的。它的主要思想是將系統分成許多互連的模組,每個模組都是一個擴展有限狀態自動機,利用Pascal語言成份來處理互動活動的參數和狀態變數以及其上的操作,可用於描述一般的分散式並發信息系統,特別適於OSI環境下通信協定的服務定義和協定描述,目前已處在DIS(DRAFT INTERNATIONAL STANDARD)階段。由於易於理解,對實現具有直接的指導意義等優點,Estelle是目前ISO/OSI的一個重要的形式描述語言。

基本模型

Estelle的基本模型是擴充的有限狀態自動機。系統的結構描述為由模組(MODULE)組成的層次形結構。模組之間通過互動點(IP)之間的雙向通道(CHANNEL)交換信息。模組之間的層次關係以及通道的結構均可隨時間變化,因此可以描述結構動態變化的系統。
每個模組都有自己的狀態空間,由一組變數的值決定。在這組變數中,有一個特別的變數稱作“主狀態(STATE)”,相當於傳統的自動機中的狀態,其它變數則往往稱為“上下文變數”。一般,主狀態用來標識連線的狀況(例如關閉,打開等),上下文變數用來存貯序列號,服務等級,數據等.模組的轉換(TRANSATION)也是在主狀態之間定義的。一個轉換依賴於若干因素,例如,不同的輸入,上下文變數的值,以及動作的優先權等。在Estelle中,這些因素均以一定的轉換子句(TRANSITION—CLAUSE)來表示。只有當子句中表達的條件滿足時,才進行指定的動作,實現狀態轉換。
模組之間通過通道傳送或接收互動作用。模組和環境的作用只能通過通道進行。“通道”概念的引入,使得模組可以從其環境中獨立出來。一個通道類型定義指定了在該通道上傳送的互動作用原語集合。例如通道類型可用來定義運輸層的服務原語,它所連線的雙方是運輸層的用戶和服務提供者。
在Estelle中使用上述概念,系統可分解為一組模組,模組與其環境(如其它模組,系統)之間通過一組通道建立聯繫,通道兩端的互動作用點分屬不同的模組,而模組本身的結構則由狀態轉換來描述。

編譯器

Estelle編譯器是開發協定的支持工具之一,主要用來輔助實現用Estelle描述的通訊協定
編譯器主要包括詞法分析語法分析代碼生成等部分。在UNIX環境下用C語言和其它軟體工具輔助實現。
詞法分析程式用Lex工具輔助實現,較為簡單,識別106種終結符號。
語法分析程式用Yacc工具輔助生成,識別105個非終結符號,276條產生式。
定義Estelle語言的國際標準草案ISO/DIS 9074中給出了Estelle的形式語法,它要經過改寫才能被Yaec接受。改寫有三種:
(1)大括弧表示重複要改為用左遞歸表示。
(2)刪除、合併產生式以提高編譯器的質量。
(3)修改文法並構造一個功能更強的詞法分析器,和語法分析器交換信息,以此處理上下文有關的約束;同時解決分析方法中的歸約/歸約衝突問題。
語法分析的主要任務是做靜態檢查和建立語法樹。為語法樹設計了兩種結點結構。一種是通用的二叉樹結構。它適用於任意的非終結符。這樣可以減少結點類型。第二種是為複雜的非終結符專門設計的結點結構,它的特點是清晰直觀,對子樹的訪問方便。
代碼生成部份選用Pascal作為目標語言。由於Estelle中含有許多Pascal的語法結構,它們可以不加改動地作為目標程式輸出。
在目標程式中,除了用戶在Estelle語言中使用的標識符外,還有編譯器產生的標識符,使用保留首字元的方法避免標識符衝突。

相關詞條

熱門詞條

聯絡我們