北航研究生课程程序语言设计原理教程第02章.ppt

上传人:本田雅阁 文档编号:2216976 上传时间:2019-03-05 格式:PPT 页数:28 大小:171.01KB
返回 下载 相关 举报
北航研究生课程程序语言设计原理教程第02章.ppt_第1页
第1页 / 共28页
北航研究生课程程序语言设计原理教程第02章.ppt_第2页
第2页 / 共28页
北航研究生课程程序语言设计原理教程第02章.ppt_第3页
第3页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《北航研究生课程程序语言设计原理教程第02章.ppt》由会员分享,可在线阅读,更多相关《北航研究生课程程序语言设计原理教程第02章.ppt(28页珍藏版)》请在三一文库上搜索。

1、第二章 程序设计语言设计概述 2.1 表示与抽象 2.2 设计目标 2.3 设计准则 2.4 规格说明 1 2.1 表示与抽象 表示是人为制造的符号组合以表达我们 需要表达的意思。 程序是程序设计语言表示的计算 float n; /n 是浮点数变量 sqrt(n) ; /对n取平方根 同一程序的高级语言表示、经翻译后的 汇编码表示、机器码表示就是该程序在 不同抽象层次上的表示。 2 2.1 表示与抽象 程序在不同抽象层次表示的关系 例:x = x + 1在机器码上就有两种方法。 从内存代表x的地址中取出 值放在运算器中。 加1,将结果放于某临时单元。 将临时单元内容做类型检查( 必要时转换)并

2、放入x中。 从内存代表x的地址中取出 值放在运算器中。 加1,将结果放入x地址中。 3 2.1 表示与抽象 儿子10岁 女儿8岁 母亲35岁 几年后儿 女岁数之 和大于等 于母亲? u=m-s-d 每人每年增1岁每增 一年比较一次,满足 条件即所求。 read(m,s,d); u=m-s-d; print(u) read(m,s,d); u=0; while(m+us+d+2u) u+; print(u); m s d u 指令集 客观世界 问题抽象 模型世界 数学模型 模拟模型 程序世界 以程序世界术语 表示描述模型 机器世界 以机器的术语 实现程序 图2-1 计算机解题的四个世界4 2.2

3、 PL设计目标 定义一组能表示某种范型的特征集,每个特征有严 格定义并可在机器上高效实现,程序员可灵活运用这些特 征表达它所希望的任何计算。 模型有力 Model Power 语义清晰 Semantic Clarity 移植性好 Portability 可读性好 Readability 方便 Convenience 简单 Simplicity 高效 Efficiency 灵活性 Flexibility 5 2.3 设计准则 频度准则 越常用越简单 方便、可读 结构一致 程序结构和计算的逻辑结构一致 可读、方便 局部性 Locality 只有全局变量Basic 不鼓励全局变量Pascal,C 无

4、全局变量函数式 Java 词法内聚 Lexical Coherence 变量在使用处就近声明 (Pascal声明和语句严格分开) (lambda (x y) (let (x 3.5) (y (+ a 2) (+ (* x y) (+ (* x y) (- x y) (- x y) 3.5 (+ a 2) x.y.(x*y)+(x-y) 3.5 (a+2) 6 续 语法一致性 GO TO (L1, L2, , Ln), I I=1n GO TO N, (L1, L2, , Ln) ASSIGN Li TO N N=L1.Ln 安全性Security 语言编译系统自动找出安全漏洞,不能弥补也要支持

5、 安全性强类型,即每个计算操作运算之前类型必须确定 C 留给程序员 过程参数不检查 一般不安全 7 续 正交性和正规性(Orthogonality beginend 语句 终结符终结符 22 2.4.1.5 语法分析 语法规格说明定义了该语言程序合法的特征和语句。语言处理器 则通过语法分析接受合法的程序,这就叫做程序释义(Parsing a Program),释义过程是产生式生成句子的逆过程。 语法分析的算法可归为两类: “自顶向下” 释义则从文法的起始符开始,按可能产生的表达式 寻找语句相同的结构匹配。每一步都产生下一个可能的源符号串 ,找到再往下走。 “由底向上”释义则相反,它先查找源代码

6、的各个符号串,看它 能否匹配归结为产生式左边的非终结符,如果有含混则向前多读 入k个符号串,为此归约下去,一个短语一个短语,最后到达起始 符号串,归约的过程就形成了释义树。 23 begin x := 17 ; writeIn ( x ) end 标识符 变量标识符 变量访问 无符号常量 完整变量 无符号数 无符号整数 因子 项 简单表达式 表达式 过程标识符 标识符 变量标识符 完整变量 变量访问 因子 项 简单表达式 表达式 write参数 writeln参数表 赋值语句 简单语句 语句 过程语句 简单语句 语句 语句序列 复合语句 24 2.4.2 语义规格说明 操作语义:每一动作的净效

7、果 指称语义: 语义函数(语法特征) 语义域上的值 用辅助函数表征的值 用函数的数学模型只看最后效果,不考虑操作过程 execute C1; C2 env sto = execute C2 env (execute C1 env sto) execute while E do C= let execute_while env sto = if evaluate E env sto = truth_value true then execute_while env (execute C env sto) else sto in execute_while 25 2.4.2 语义规格说明 公理语义

8、:从程序的前题推导出结论 前题 f1, f2, ., fn 结论 f0 f1:pSq公式也是定理 p,q前后置断言, S语句集 x=a and y=b 只要前提为真结论亦为真 t:=x; x:=x+y; y:=t x=a+b and y=a 26 续 specification LISTS sorts List NATURALS formal sort Component Operations empty_list : List cons(_,_) : Component,ListList headof_ : List Component tailof_ : List List lengtho

9、f_ : 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 代数语义:把语义模型的集合看成是一个代数结构,模型簇 对应为代数系统 用代数方法描述数据类型 A=(V, Op) 27 2.4.3 上下文规格说明 限定程序短语的良构规则 简化语法语义形式化 使上下文无关文法得以使用 28

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1