首页 理论教育 L语言介绍-编译原理与实践

L语言介绍-编译原理与实践

时间:2023-11-17 理论教育 版权反馈
【摘要】:在了解了高级语言的定义和一般特性之后,这里将给出一个自定义的类Pascal语言的语法规则说明,它是高级语言Pascal的缩减版本,本书称作L语言。L语言具有一般高级语言的共同特征,同样含有字符集、数据类型、说明语句以及控制语句等多种语法成分,下面分别予以定义。

L语言介绍-编译原理与实践

在了解了高级语言的定义和一般特性之后,这里将给出一个自定义的类Pascal语言的语法规则说明,它是高级语言Pascal的缩减版本,本书称作L语言。在后续章节逐步讲解编译程序的基本原理、方法和技术的同时,我们将会把L语言编译器的实现过程贯穿其中,从而使读者理论学习与实践应用相融合,以达到充分理解和掌握编译技术的学习目的。

L语言具有一般高级语言的共同特征,同样含有字符集、数据类型、说明语句以及控制语句等多种语法成分,下面分别予以定义。

1.字符集的定义

(1)<字符集>∷=<字母>|<数字>|<单界符>

(2)<字母>∷=a|b|c|……|z|A|B|C|……|Z

(3)<数字>∷=0|1|2|3|4|5|6|7|8|9

(4)<单界符>∷=+|-|*|/|=|<|>|(|)|:|.|;|,|_|

2.单词的定义

(1)<单词>∷=<保留字>|<双界符>|<标识符>|<常数>|<单界符>

(2)<保留字>∷=begin|end|integer|char|bool|real|not|and|or|input|output|program|read|write|for|to|while|do|repeat|until|if|then|else|true|false|var|const

(3)<双界符>∷=/*|*/|<=|>=|<>|:=|"

(4)<标识符>∷=<字母>|<标识符><数字>|<标识符><字母>

(5)<常数>∷=<整数>|<布尔常数>|<字符常数>|<实数

(6)<整数>∷=<无符号整数>|+<无符号整数>|-<无符号整数>

(7)<无符号整数>∷=<数字>|<无符号整数><数字>

(8)<布尔常数>∷=true|false

(9)<字符常数>∷=除以外的任意字符串

(10)<实数>∷=<小数>|<指数>

(11)<小数>∷=<整数>.<无符号整数>

(12)<指数>∷=<小数>E<整数>|<小数>e<整数>

3.数据类型定义

<类型>∷=integer|bool|char|real

4.表达式定义

(1)<表达式>∷=<算术表达式>|<布尔表达式>

(2)<算术表达式>∷=<算术表达式>±<项>|±<项>|<项>

(3)<项>∷=<项>*<因子>|<项>/<因子>|<因子>

(4)<因子>∷=<算术量>|(<算术表达式>)

(5)<算术量>∷=<标识符>|<整数>|<实数>

(6)<布尔表达式>∷=<布尔表达式>or<布尔项>|<布尔项>

(7)<布尔项>∷=<布尔项>and<布尔因子>|<布尔因子>

(8)<布尔因子>∷=<布尔量>|not<布尔因子>(www.xing528.com)

(9)<布尔量>∷=(<布尔表达式>)|<布尔常数>|<标识符>|(<算术表达式><关系符><算术表达式>)

(10)<关系符>∷=<|>|<>|<=|>=|=

5.语句定义

(1)<说明语句>∷=<常量说明>|<变量说明>

(2)<常量说明>∷=const<常数定义>|ε

(3)<常数定义>∷=标识符=<常数>;<常数定义>|标识符=<常数>;

(4)<变量说明>∷=var<变量定义>|ε

(5)<变量定义>∷=<标识符表>:<类型>;|<标识符表>:<类型>;<变量定义>

(6)<标识符表>∷=<标识符>,<标识符表>|<标识符>

(7)<执行语句>∷=<简单句>|<结构句>

(8)<简单句>∷=<赋值语句

(9)<赋值语句>∷=<变量>:=<表达式>

(10)<变量>∷=<标识符>

(11)<结构句>∷=<复合句>|<if语句>|<while语句>|<for语句>|<repeat语句>

(12)<复合句>∷=begin<语句表>end

(13)<语句表>∷=<执行语句>;<语句表>|<执行语句>

(14)<if语句>∷=if<布尔表达式>then<执行语句>|if<布尔表达式>then<执行语句>else<执行语句>

(15)<while语句>∷=while<布尔表达式>do<执行语句>

(16)<repeat语句>∷=repeat<执行语句>until<布尔表达式>

(17)<for>∷=for<变量>:=<循环参数>to<循环参数>do<执行语句>

(18)<循环参数>∷=<变量>|<整数>

6.程序定义

(1)<程序>∷=program<标识符>;<分程序>

(2)<分程序>∷=<说明语句><复合句>

7.注意事项

(1)程序语句的书写采用自由格式,即一行可写多个语句,一个语句也可分多行书写。

(2)语句一般以“;”结束,但“end”前的一个语句结尾没有“;”。

(3)注释由/*和*/括起,但/*和*/必须在同一行内。

(4)注释中的字符不做规定,但注释中间不能出现*/,否则其后部分不被认为是注释。

(5)注释不能出现在一个语句的中间,只能出现在两个语句之间或程序的开头和结尾。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈