- 中文名
- 簡單的具有嵌套過程的程序設計語言
- 外文名
- SNL
- 字符表
- 包括了26個英文字母
- SNL語法
- 程序頭、聲明部分和程序體
SNLSNL詞法
編輯1.字符表
字符表包括了26個英文字母(a-Z,大小寫敏感)和10個阿拉伯數字(0-9),運算符(+ - * / < =),括號( () [] {} ),標點(. ; ’),分隔符(EOF,空白符),共79個字符。
2.單詞
標識符(ID)
無符號整數 (INTC)
雙字符分界符 (:=)
註釋 (圓括號中添加註釋,{……})
字符起始結束 (單引號,‘)
數組下標界限符 (..)
SNLSNL語法
編輯一個合法的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.