程序设计语言概论模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用一些符号来代表指令,如sub代表减,Add 代表加等,机器地址用十进制。有时汇编语 言等同于符号机器码。
变量名用符号,地址也可用符号而非数字。 编制的程序称为汇编语言程序。
用户可以定义新指令及子程序
高级语言
甚高级语言
返回
2019年5月27
源程序编译为目标程序,或解释执行
高级程序语言的高层规约语言,提供比高级
作业占40% 期末考试占60%
2019年5月27
感谢你的观看
5
参考书
Terrence W. Pratt & Marvin V. Zelkowitz, Programming Languages: Design and Implementation, 3rd Edition, Prentice Hall, Englewood Cliffs, New Jersey, 1996
2. 程序设计语言必须有较大程度的机器独立性(完全的 机器独立性)。这意味着必须有较大潜力,使得源程 序可运行在具有不同机器代码的两台计算机上,不需 要完全重写。
3. 当源程序翻译成机器代码时,通常对每个执行单元有 多个机器指令,如:A=A+B需多个机器指令来实现
4. 程序设计语言的记号比机器语言更接近于被求解的问 题。 如:A=A+B比其机器翻译更易于理解。
2019年5月27
感谢你的观看
13
本课程研究的对象
主要考虑那些在计算机上实现的程序设 计语言
术语“程序设计语言”并没有一个公认 的范围定义
通常这个术语是指高级语言
返回
2019年5月27
感谢你的观看
14
计算机上语言的层次
纯二进制 机器码或符号机器码
符号汇编语言 宏汇编语言
Byte或word,指令、数据不分
2019年5月27
感谢你的观看
26
1.2 程序设计语言简史
程序设计的历史很复杂,至今已很难于拟出一条全面 清晰的发展轨迹。已有各种不同的总结方式。1978年, ACM Special Interest Group on Programming Language (SIGPLAN)召开了一个会议,HOPL (History of Programming Language),专门研讨语 言发展历史。
2019年5月27
感谢你的观看
3
课程主要内容
围绕高级语言程序的基本性质及构成展 开
语法、语义
编码及运行
数据、处理及其抽象
数据:简单、复杂 处理:语句级(语句内及语句间)、模块级、系
统级
2019年5月27
感谢你的观看
4
授课方式及考核方法
授课方式:
课堂讲授为主
考核方法:
语法——程序看起来像什么 语义——程序的含义是什么 实现——程序是如何执行的
了解求解特定问题最合适的语言,例如:
Pascal, C -- 过程式的,面向语句的 C++, Java, Smalltalk -- 面向对象的 ML, Lisp -- 函数式的 Prolog -- 基于规则的
2019年5月27
感谢你的观看
23
学习、研究程序设计语言的理由 (5/6)
5、更易于学习新语言
对自然语言语法结构的学习和了解可使对新 语言的学习更容易
对程序设计语言各种结构和实现技术的了解, 也可使程序员能够在需要时更容易学习新语 言
2019年5月27
感谢你的观看
24
学习、研究程序设计语言的理由 (6/6)
感谢你的观看
6
第一章 程序设计语言研究
2019年5月27
感谢你的观看
7
主要内容
程序设计语言的定义及其特征 为什么研究程序设计语言 程序设计语言的评价 程序设计语言简史
代表性语言 程序设计语言的角色 影响语言的主要因素
程序设计语言的范型
2019年5月27
感谢你的观看
2.大多数程序员通常不会同时使用多种语言,一般限 制到1~2种。事实上,都是直接使用计算机上已有 的语言如C、Ada、 Fortran等。
既然如此,为什么要去研究各种不同的语言,
有的语言甚至永远不可能再被使用?
2019年5月27
感谢你的观看
16
学习、研究程序设计语言的理由
不仅仅是停留于肤浅的对语言特性的了解和考 虑
如子程序控制结构、协同例程(coroutine)在很多程序中 有用,但很少有语言直接提供协同例程特性。
C或Fortran程序员可以设计程序来使用协同例程结构,然 后将它们实现为C或Fortran程序(如果熟悉相关概念及实 现)从而可以提供大型程序的正确控制结构。
2019年5月27
感谢你的观看
于使用这种结构;对递归原理和实现技术的了解可使程序 员了解在特定语言中的递归的相对代价并通过其理解确定 其使用是否合适。
新的程序设计方法不断在文献中引入,如OO程序设 计,逻辑程序设计和并发程序设计的使用均需要对 实现这些概念的语言的详细了解和掌握。
2019年5月27
感谢你的观看
19
学习、研究程序设计语言的理由 (2/6)
Robert W. Sebestaa, Concepts of Programming Languages (5th edition), 机械工业出版社,2003。
招兆铿,朱洪,程序设计语言原理,上海科技文献出 版社,1998
徐家福,吕建,软件语言及其实现,科学出版社, 2000
2019年5月27
学习、研究程序设计语言的理由 (3/6)
3、增加可使用的有用的程序设计结构的词汇量
语言对思维既有帮助,也有限制
人们使用语言去表达思想,但语言也控制人如何思维,用 字句中没有直接表达的方式来思维是十分困难的。
在解决一个问题时,要寻找合适的数据和程序结构, 通常人们首先考虑他熟悉的语言中可直接表达的结 构。
用于传递信息的字符、约定和规则的集合。语言 的三个方面是语用、语义和语法。
2019年5月27
感谢你的观看
10
什么是语言 (3/4)
4、中国大百科全书,电子学与计算机卷
语言的基础是一组记号和一组规则,根据规则由 记号构成之记号串的总体就是语言。
5、徐家福:软件语言及其实现
语言是基于一组记号与一组规则、根据规则由记 号构成之记号串的总体。任何语言均包括语法、 语义和语用三个方面。
程序语言的早期发展
语言发展可追溯到1945年,德国的Konrad Zuse设计了 “Plankalkul”,未实现。
1954年,Laning和Zierler开发了一个用于数学计算的高级语言, 运行于M.I.T的Whirlwind上,这大概是第一个运行的编译器。 它可以书写数学表达式(具有上、下标)、赋值、分叉、输 入/输出、子程序,并处理微分方程。
如果程序员熟悉一般程序设计语言中的结构和实现 方法,则程序设计将可以大为简化。
2019年5月27
感谢你的观看
25
学习、研究程序设计语言的理由
总之,程序设计语言的研究十分重要, 包括语言特性和实现技术(特别是不同 结构的运行时表示技术)等主要研究内 容。
理解 使用 设计和实现
返回
研究各种语言提供的结构和这些结构被实现的方式, 程序员可增加其编程词汇。
2019年5月27
感谢你的观看
21
学习、研究程序设计语言的理由 (3/6)
3、增加可使用的有用的程序设计结构的词汇量
对实现技术的了解非常重要。如要使用一个结构, 该结构在语言中没有直接提供,程序员必须提供自 己的实现(使用语言提供的基本结构)。
程序设计语言=字符集+规则集(用于组合字符) 任何用于描述算法和数据结构的一套符号系统均可称
为程序设计语言
2019年5月27
感谢你的观看
12
程序设计语言的四个基本特征
1. 用户不需要具有机器代码的知识,只需学习特定的程 序设计语言,并独立于任何特定的机器代码而使用。 这并不意味着用户可以完全忽略实际的计算机,如: 需知道浮点数的表示或使用某些机器资源。
2、改善对现行程序设计语言的使用方式
通过对语言特性的实现细节的了解,可大大 增加书写高效的程序的能力。如:
对数据结构,诸如数组、串、表、记录等,如何 被创建和操作的了解
对递归的实现细节的了解 以及对对象类如何被创建的了解
将对书写高效程序有很大帮助
2019年5月27
感谢你的观看
20
程序设计语言概论
2019年5月27
感谢你的观看
1
课程目的
了解高级程序设计语言发展历史及现状 了解高级程序设计语言的基本概念和原
理 了解高级程序设计语言实现技术及原理 了解若干主要的高级程序设计语言
2019年5月27
感谢你的观看
2
课程主要内容
高级程序设计语言的基本概念、原理、及实现 技术
22
学习、研究程序设计语言的理由 (4/6)
4、更好地选择程序设计语言
对程序设计语言知识的掌握可以允许程序员 针对特定的项目,恰当地选取合适的语言, 从而减少编码工作量。如:C、Fortran、 Ada可用于数字运算,Lisp、ML、Prolog可 用于人工智能应用。对每种语言的特性的长 处和弱点的了解和掌握有利于程序员做出广 泛而正确的选择。
程序语言更高级的语言设施。又称为“可执
行的规约语言”。有时也不区别于高级语言。
感谢你的观看
15
1.1 为什么研究程序设计语言
两个基本观察:
1.已有数百种语言被设计和实现。在1969年, Sammet就列出了当时120种相当广泛使用的语言, 在此以后,又有很多语言被开发。在早期,为一个 项目的进行而开发一种语言是常有的事。
6、更易于设计新语言
很少有程序员把自己考虑为语言设计者,然而,任 何程序都有一个用户界面,这事实上也是某种形式 的程序设计语言,用户界面包括提供给用户用于和 程序通讯的命令和数据格式。
大型程序,如文本编辑器、操作系统、图形包的用 户界面的设计者,必须考虑很多存在于通用程序设 计语言设计中的相同问题。
2019年5月27
感谢你的观看
11
什么是语言 (4/4)
语言的作用
描述作用、交流作用和标志作用(软件语言可作为计算技术 发展的里程碑标志)
语言是人类生活的必要工具,不同的语言被使用于不 同的领域和方面
在计算领域,也存在不同层次的语言,本书所论及的 是实现层次的语言,即程序设计语言。
8
什么是语言 (1/4)
语言是信息交流工具。有如下几种定义:
1、Webster字典定义
An artificially constructed primarily formal system of signs and symbols (as symbolic logic) including rules for the formation of admissible expressions and for their transformation
由人工构造的、基于一组记号与符号的、(基本 上是)形式化的系统(如符号逻辑),包括合法 表达式的形成规则和转换规则。
2019年5月27
感谢你的观看
9
什么是语言 (2/4)
2、Longman字典定义
Any system of signs, movements, etc., used to express meanings or feelings
有可能一个长期使用某一语言的程序员也并不理解 该语言的所有特性。
2019年5月27
感谢你的观看
18
学习、研究程序设计语言的理由 (1/6)
1、提高开发有效算法的能力
如ቤተ መጻሕፍቲ ባይዱ归特性:是一个非常便利的程序设计语言特性
如正确、合适使用,可得到优美和高效算法的直接实现。 如不正确使用,将可能导致执行时间的天文数字增长。 如果程序员不知道递归蕴含的设计问题和实现困难,将难
深入了解根本性的语言设计概念及它们对语言 实现的影响
2019年5月27
感谢你的观看
17
学习、研究程序设计语言的理由 (1/6)
1、提高开发有效算法的能力
很多语言提供的特性如果被合适地使用,会给程序 员带来益处,但如被不合适地使用,将可能导致大 量计算机时间浪费或使程序员出现耗时的逻辑错误。
任何表情达意的记号系统。 3、英汉双解计算机辞典定义(清华大学出版社)
A set of characters, conventions and rules, that is used for conveying information. The three aspects of language are pragmatics, semantics and syntax
相关文档
最新文档