程序设计技术和方法_sicp04-1.pdf

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

4. 元语言抽象(1) 本章研究语言的设计和实现 语言抽象 程序设计(编程)和语言 语言抽象的意义和方法 元循环求值器(用Scheme 写的Scheme 解释器) 基本求值过程 求值器的核心操作eval 和apply 表达式数据抽象和接口操作 求值器数据结构 程序设计技术和方法 裘宗燕,2012-11-28 (1) 程序设计和语言 前面讨论了一些程序设计技术,主要研究: 如何组合基本程序设计元素,构造出具有更复杂功能的结构 如何将复杂结构抽象为高层构件,以方便地用于进一步组合 如何采用一些更高层次的观点和组织方式,提高系统的模块性 这些都是编程的问题(编程:用一种语言写程序) 前面一直用Scheme (一种Lisp方言)作为编程语言 如果遇到的问题更加复杂,或者需要解决某个领域的大量问题,就可能 发现现实可用的语言(Lisp 或其他)都不够满意或不够方便 可能看到需要解决的问题有一些共性和特殊需要 最好是有一种能最有效地表述与问题相关的想法的语言 如果现成的语言都不太适用,就需要自己设计和实现一个新语言 通过语言设计,提供语言层抽象,可能获得更好的模块化 程序设计技术和方法 裘宗燕,2012-11-28 (2) 程序设计和语言 设计一个好的适用的语言很不容易 设计和实现语言的工作量很大,不应该轻易去做 必须对所面临问题有较深入认识和总结 但,建立适用的新语言是控制系统复杂性的最强有力的策略 在适当(或者不得已)的情况下应该考虑 针对具体问题(或问题领域) 设计的专门语言 有可能提供一套最适用的原语、组合方式和抽象方式 使人能以最有效的方式描述要处理的问题 使领域专家有可能直接做应用系统的开发 可能大大提高在一定范围内处理复杂情况的能力 这些情况说明,软件工作者有时也可能需要做语言设计师(至少,应该 注意到这种可能性) 程序设计技术和方法 裘宗燕,2012-11-28 (3) 程序设计和语言 在从事程序设计和系统开发的工作中,通常会涉及许多不同层次的语言 (应该注意这个问题),有的很简单,有的很复杂 最简单的如C 标准库printf 的格式描述串(一种简单排版语言) 服务于各种用途的脚本语言 最复杂的是高级编程语言 还有许许多多面向专门应用领域的语言 操作系统命令语言 HTML,XML ,网页描述和“排版” Mathematica,Maple,数学计算(符号计算) Matlab,数值计算和模拟应用 Coq,PVS,形式化模型和定理证明(计算机科学,数学) R,统计计算和应用 程序设计技术和方法 裘宗燕,2012-11-28 (4) 程序设计和语言 如果根据需要设计了语言,就要考虑语言的“实现”问题 计算机工作者设计语言,主要是为了让计算机能根据我们的语言的 指示完成一些工作,或用自己的语言构造应用系统 “实现”一个语言,就是为使这个语言在计算机上实际可用而做的工 作。常见的方法是开发一个能处理这个语言的解释器 语言的解释器本身也是一个过程 送给它相应语言的一个表达式(一段完整描述,一个“程序”),它 就会按该表达式的要求执行相应的动作 解释器“理解”这个语言,理解语言中各种结构的意义 实现语言也是程序设计中最本质思想的典型体现: 语言的求值器(在某种意义下)定义了语言里各种表达式的意义 它本身也就是一个程序 理解语言和语言的解释器,还能帮助我们进一步理解程序设计本身 程序设计技术和方法

文档评论(0)

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

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

1亿VIP精品文档

相关文档