- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 程序设计语言设计概述2.1 表示与抽象2.2 设计目标2.3 设计准则2.4 规格说明1第1页,共28页。
2.1 表示与抽象表示是人为制造的符号组合以表达我们需要表达的意思。程序是程序设计语言表示的计算float n; //n 是浮点数变量sqrt(n) ; //对n取平方根同一程序的高级语言表示、经翻译后的汇编码表示、机器码表示就是该程序在不同抽象层次上的表示。2第2页,共28页。
2.1 表示与抽象程序在不同抽象层次表示的关系例:x = x + 1在机器码上就有两种方法。从内存代表x的地址中取出值放在运算器中。加1,将结果放于某临时单元。将临时单元内容做类型检查(必要时转换)并放入x中。从内存代表x的地址中取出值放在运算器中。加1,将结果放入x地址中。3第3页,共28页。
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);msdu指令集客观世界问题抽象模型世界数学模型模拟模型程序世界以程序世界术语表示描述模型机器世界以机器的术语实现程序图2-1 计算机解题的四个世界4第4页,共28页。
2.2 PL设计目标 定义一组能表示某种范型的特征集,每个特征有严格定义并可在机器上高效实现,程序员可灵活运用这些特征表达它所希望的任何计算。模型有力 Model Power语义清晰 Semantic Clarity移植性好 Portability可读性好 Readability方便 Convenience简单 Simplicity高效 Efficiency灵活性 Flexibility5第5页,共28页。
2.3 设计准则频度准则 越常用越简单 方便、可读结构一致 程序结构和计算的逻辑结构一致 可读、方便局部性 Locality 只有全局变量Basic 不鼓励全局变量Pascal,C 无全局变量函数式 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第6页,共28页。
续语法一致性 GO TO (L1, L2, …, Ln), I I={1..n} GO TO N, (L1, L2, …, Ln) ASSIGN Li TO N N={L1...Ln}安全性Security 语言—编译系统自动找出安全漏洞,不能弥补也要支持 安全性→强类型,即每个计算操作运算之前类型必须确定 C 留给程序员 过程参数不检查 一般不安全7第7页,共28页。
续正交性和正规性(Orthogonality Regularity) 正交: 每个语言特征都是独立的, 增减不影响其它 正规: 每一约定或规则无一例外 不正规:数组不能作返回值, 不能赋值 函数不能做参数 不正交→不正规8第8页,共28页。
续数据隐藏 (Data hiddening) 封装,以名字封装内部数据设计者可见使用者不可见 局部性不一定封装,如: Do l0 I=1,10,2 当I=7时 GOTO 20 10 CONTINUE 20 …... R=I 可以,此时R=7.0...9第9页,共28页。
续抽象表达 抽取因子、递归表达、高层模块名、 常量名=常量表达式(易于维护) 先抽象再修饰具体(如同自然语言)static const int maxlndex=MAX_LENGTH_1MATHLIB.TRIANG COS(X)可移植性 力图不依赖环境 预定
文档评论(0)