程序 分程序 内的文字表示非终结符 或○ 内的文字或符号表示终结符
程序 分程序 . 内的文字表示非终结符 或 内的文字或符号表示终结符
分程序 const ident number var ident procedure ident 分程序 语句
const ident = number , ; var ident , ; ; procedure ident ; 分程序 语句 分程序
PL/O语言文法的EBNF表示 EBNF 引入的符号(元符号): >用左右尖括号括起来的语法成分为非终结符 = (→)定义为’:=(→)的左部由右部定义 或 {} 表示花括号内的语法成分可重复任意次或限 定次数 [] 表示方括号内的语法成分为任选项 表示圆括号内的成分优先
PL/0语言文法的EBNF表示 EBNF 引入的符号(元符号): < > 用左右尖括号括起来的语法成分为非终结符 ∷= (→) ‘定义为’ ∷=(→) 的左部由右部定义 | ‘或’ { } 表示花括号内的语法成分可重复任意次或限 定次数 [ ] 表示方括号内的语法成分为任选项 ( ) 表示圆括号内的成分优先
例:用EBNF描述<整数>的定义: <整数>=[+-]<数字>{<数字>} <数字>:=0123456789 或更好的写法 <整数>=[+-]<非零数字>{数字}0 <非零数字>:=123456789 (数字>:=0非零数字》
例:用EBNF描述<整数>的定义 : <整数>∷=[+|-]<数字>{<数字>} <数字>∷=0|1|2|3|4|5|6|7|8|9 或更好的写法 <整数>∷=[+|-]<非零数字>{<数字>}|0 <非零数字>∷=1|2|3|4|5|6|7|8|9 <数字>∷=0|<非零数字>
PL/O语言是PASCAL语言的子集 同PASCAL 作用域规则(内层可引用包围它的外层定义的标识符), 上下文约束, 过程可嵌套定义,可递归调用 子集 数据类型,只有整型 数据结构,只有简变和常数 数字最多为14位 标识符的有效长度是10 语句种类 过程最多可嵌套三层
PL/0语言是PASCAL语言的子集 同PASCAL 作用域规则(内层可引用包围它的外层定义的标识符), 上下文约束, 过程可嵌套定义,可递归调用 子集 数据类型,只有整型 数据结构 ,只有简变和常数 数字最多为14位 标识符的有效长度是10 语句种类 过程最多可嵌套三层