一種新的IEC61131―3語(yǔ)言編譯器中間結構的設計方案
圖1所示是一個(gè)POU程序單元以三叉樹(shù)鏈表的中間結構總體表示的總體形式。本文引用地址:http://dyxdggzs.com/article/202533.htm
采用三叉樹(shù)森林的方法能夠充分的表示正常的高級語(yǔ)言,同時(shí),與其他編譯器不同,該方法還引入了POU節點(diǎn)操作符和語(yǔ)句操作符,而省去了前端大量語(yǔ)法翻譯的工作,符合IEC工業(yè)語(yǔ)言編譯器多前端的特征。
2 中間結構說(shuō)明
語(yǔ)法分析樹(shù)的語(yǔ)法操作符可分為POU節點(diǎn)操作符、語(yǔ)句操作符和表達式操作符三種類(lèi)型。下面來(lái)詳細介紹這三種語(yǔ)法樹(shù)節點(diǎn)的各種屬性。
2.1 POU節點(diǎn)操作符
POU節點(diǎn)操作符可用于表示POU的開(kāi)始、結束、作用域和變量定義。各節點(diǎn)屬性如表l所列。
其中,語(yǔ)法操作以宏定義的形式聲明。符號是該節點(diǎn)關(guān)聯(lián)的符號表項。符號可分為POU符號和變量符號。POU符號包括POU名、參數個(gè)數及
類(lèi)型、返回值類(lèi)型、POU地址等信息;變量符號則包括變量名、類(lèi)型、作用域和地址等信息。
表l中的唯一節點(diǎn)指整個(gè)森林第一層鏈表中的節點(diǎn);葉節點(diǎn)指鏈表中一棵三叉樹(shù)的葉節點(diǎn)。
2.2 語(yǔ)句操作符
語(yǔ)句操作符分為分支選擇操作符、循環(huán)操作符、跳出、返回、調用和無(wú)條件跳轉等。各節點(diǎn)屬性如表2所列。
表2中的根節點(diǎn)指森林中一棵三叉樹(shù)的根節點(diǎn);中間節點(diǎn)指某三叉樹(shù)中的中間節點(diǎn),它既非根節點(diǎn),也非葉節點(diǎn)。CH00SE的左子節點(diǎn)是條
件判定,中子節點(diǎn)是條件為真的內容,右子節點(diǎn)是條件為假的內容。同樣,LOOP的左子節點(diǎn)是條件判定,中子節點(diǎn)是循環(huán)體,右子節點(diǎn)是循環(huán)計數。對于WHILE語(yǔ)句,右子節點(diǎn)可以為空。RETURN的左子節點(diǎn)是返回表達式子樹(shù)。CALL的左子節點(diǎn)是參數子樹(shù),中子節點(diǎn)是調用子樹(shù)。
評論