SNL(簡單的具有嵌套過程的程式設計語言)

SNL(簡單的具有嵌套過程的程式設計語言)

Small NestedLanguage(SNL)即簡單的具有嵌套過程的程式設計語言,是一種教學用的過程式語言,最初由《編譯程式的設計與實現》一書的作者設計並實現了其編譯程式(SNLC)。該語言具有標準數據類型和結構數據類型,可以嵌套定義過程,允許遞歸調用,過程的參數可以分為值參和變參兩種形式,控制語句Pascal語言基本相同,除指針類型外,SNL具備了過程式語言的基本特徵。SNL是自行定義的,很大程度上是一種類Pascal的“高級”程式設計語言。用其作為實例語言並構造編譯程式,可以使絕大多數編譯技術在編寫元級程式的過程中得到體現。

基本介紹

  • 中文名:簡單的具有嵌套過程的程式設計語言
  • 外文名:SNL
  • 字元表:包括了26個英文字母
  • SNL語法:程式頭、聲明部分和程式體
SNL詞法,SNL語法,

SNL詞法

1.字元
字元表包括了26個英文字母(a-Z,大小寫敏感)和10個阿拉伯數字(0-9),運算符(+ - * / < =),括弧( () [] {} ),標點(. ; ’),分隔設定(EOF,空白符),共79個字元。
2.單詞
標識符(ID)
巴科斯範式表示: <標識符> := 字母 { 字母 | 數字}
保留字標識符子集:if,repeat,read,write……)
無符號整數 (INTC)
字元分界符 (上文提到的所有運算符,圓括弧和方括弧,句號和分號,分隔設定
字元分界符 (:=)
注釋 (圓括弧中添加注釋,{……})
字元起始結束 (單引號,‘)
數組下標界限符 (..)

SNL語法

一個合法的SNL程式是由程式頭、聲明部分和程式體組成的。
聲明部分包括類型聲明、變數聲明和過程聲明。SNL的語法規定可以聲明整型(integer)、字元類型(char)、數組類型以及記錄類型的類型標識符變數。過程聲明包括過程頭、過程內部聲明和過程體部分,過程聲明內部還可嵌套聲明內層過程。程式體由語句序列組成,可以包括空語句、條件語句、循環語句、輸入/輸出語句、過程調用和返回語句。表達式分為簡單算術表達式關係表達式
下面是一個SNL程式例子,該程式實現冒泡排序算法。
program bubble {程式頭 程式名標識符}
var integer i,j,num;
array[1..20] of integer a;
procedure q(integer num);
var integer i,j,k;
integer t;
begin
i:=1;
j:=1;
while i < num do
j:=num-i+1;
k:=1;
while k<j do
if a[k+1] < a[k]
then t:=a[k];
a[k]:=a[k+1];
a[k+1]:=t
else t:=0
fi;
k:=k+1
endwh;
i:=i+1
endwh
end
begin
read(num);
i:=1;
while i<(num+1) do
read(j);
a:=j;
i:=i+1
endwh;
q(num);
i:=1;
while i<(num+1) do
write(a);
i:=i+1
endwh
end.

相關詞條

熱門詞條

聯絡我們