- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
续-程序设计语言原理.ppt
第二章 程序设计语言设计概述 2.1 表示与抽象 2.2 设计目标 2.3 设计准则 2.4 规格说明 2.5 计算学科中的理解 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 程序质量 Quality 方便 Convenience 简单 Simplicity 高效 Efficiency 灵活性 Flexibility 可扩充性 Extensible 可重用性 Reusable ((lambda (x y) (let ((x 3.5) (y (+ a 2))) (+ (* x y) ((+ (* x y) (- x y))) (- x y))) 3.5 (+ a
文档评论(0)