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

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

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北航研究生课程_程序语言设计原理教程_第02章节

第二章 程序设计语言设计概述 2.1 表示与抽象 2.2 设计目标 2.3 设计准则 2.4 规格说明 2.1 表示与抽象 表示是人为制造的符号组合以表达我们需要表达的意思。 程序是程序设计语言表示的计算 float n; //n 是浮点数变量 sqrt(n) ; //对n取平方根 同一程序的高级语言表示、经翻译后的汇编码表示、机器码表示就是该程序在不同抽象层次上的表示。 2.1 表示与抽象 程序在不同抽象层次表示的关系 例:x = x + 1在机器码上就有两种方法。 2.1 表示与抽象 2.2 PL设计目标 2.3 设计准则 频度准则 越常用越简单 方便、可读 结构一致 程序结构和计算的逻辑结构一致 可读、方便 局部性 Locality 只有全局变量Basic 不鼓励全局变量Pascal,C 无全局变量函数式 Java 词法内聚 Lexical Coherence 变量在使用处就近声明 (Pascal声明和语句严格分开) 续 续 续 续 2.4.1 语法规格说明 续 续 2.4.1.2 上下文无关文法 2.4.1.3 BNF 和EBNF 续 续 续 续 2.4.1.4 语法图 2.4.1.5 语法分析 2.4.2 语义规格说明 操作语义:每一动作的净效果 指称语义: 语义函数(语法特征) →语义域上的值 用辅助函数表征的值 用函数的数学模型只看最后效果,不考虑操作过程 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 2.4.2 语义规格说明 公理语义:从程序的前题推导出结论 前题 f1, f2, ..., fn 结论 f0 f1:{p}S{q}公式也是定理 {p},{q}前后置断言, S语句集 x=a and y=b 只要前提为真结论亦为真 t:=x; x:=x+y; y:=t x=a+b and y=a 续 2.4.3 上下文规格说明 * * 从内存代表x的地址中取出 值放在运算器中。 加1,将结果放于某临时单元。 将临时单元内容做类型检查(必要时转换)并放入x中。 从内存代表x的地址中取出 值放在运算器中。 加1,将结果放入x地址中。 儿子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 计算机解题的四个世界 定义一组能表示某种范型的特征集,每个特征有严格定义并可在机器上高效实现,程序员可灵活运用这些特征表达它所希望的任何计算。 模型有力 Model Power 语义清晰 Semantic Clarity 移植性好 Portability 可读性好 Readability 方便 Convenience 简单 Simplicity 高效 Efficiency 灵活性 Flexibility ((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) 语法一致性 GO TO (L1,

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档