- 2
- 0
- 约1.95千字
- 约 61页
- 2019-11-04 发布于天津
- 举报
第二章 程序设计语言设计概述;2.1 表示与抽象;2.1 表示与抽象;2.1 表示与抽象;语言设计:目标演化;语言设计:目标演化;语言设计:目标演化;语言设计:目标演化;2.2 PL设计目标;2.3 设计准则;续;续;续;续;形式语法:以形式结构规则的语言元素组合规则
微语法 词法 Lexicon
宏语法 定义特征的规则;第*页;第*页;第*页;T是终结符号串的有限集。N是非终结符号串的有限集。
T∩N = Φ,即它们是不相交的。S是起始符号串, S∈N。
P是产生式, 一般形式是:α→β α,β∈(T∪N)*
“→”表示左端可推导出右端,
如α→β, α→Υ, α→δ则可写为:α→β|Υ|δ
如果产生式将语言的非终结符中的每一个标记都推得为终结符号, 则这一组产生式集即为该语言的全部文法。;整数的产生式表示法:
设digit→0|1|2|3|4|5|6|7|8|9
则Integer→digit 一位数是整数
Integer→digitdigit 两位数也是
Integer→digit…digit n位数也是
n个
这势必造成产生式臃肿, 如果写成:
Integer→digit|Integerdigit
|digit Integer;续;续;2.4.1.2 上下文无关文法;2.4.1.3 BNF 和EBNF;续;EBNF: 左端取消 , 空白加‘-’
减少递归表示再加‘(’,‘)’,‘.’,
尽量用正则表达式
终结符号加‘ ’号或黑体;续;compound-statement ::= begin statement-sequence end.
statement-sequence ::= statement {; statement}.
statement::=[label :](simple-statement|structured-statement).
simple-statement ::= empty-statement | assignment-statement |
procedure-statement | goto-statement.
structured-statement ::= compound-statement|conditional-statement
|repetitive-statement | with-statement. ;2.4.1.4 语法图;2.4.1.5 语法分析;begin x := 17 ; writeIn ( x ) end;第*页;第*页;2.4.2 语义定义与规格说明;第*页;1、静态语义:类型的理论;1、类型环境??类型断言;1、类型推导;1、类型规则;1、类型规则;2、语义基础:环境和状态;2、环境和状态;2、环境和状态;2、环境和状态;2、环境和状态;3、语义规格说明;操作语义:格局和规则;操作语义:续;第*页;第*页;第*页;第*页;第*页;第*页;第*页;第*页;第*页;第*页;specification LISTS
sorts
List
NATURALS
formal sort Component
Operations
empty_list : List
cons(_,_) : Component,List→List
headof_ : List → Component
tailof_ : List → List
lengthof_ : List → NATURALSs
variables c: Component
l: List
equations
headof cons (c,l)=c
tailof cons (c,l)=l
tailof empty_list = empty_list
lengthof empty_list = 0
lengthof cons (c,l)=succ (length of l)
end specification;语法、语义和语用
原创力文档

文档评论(0)