网络教学 Programming Language Design and Implementation 程序设计语言 E
程 序 设 计 语 言 Programming Language Design and Implementation 网络教学
第1章程序语言设计问题 学习目标]:初步掌握程序语言的基本概念,了 解程序语言的发展;了解编程环境对语言的影响。 理解学习程序设计语言的作用; 了解几种语言的特点; 了解对程序语言影响的主要要素; 了解语言标准问题; 学习程序设计语言的基本计算模式;
第1章 程序语言设计问题 [学习目标]:初步掌握程序语言的基本概念,了 解程序语言的发展;了解编程环境对语言的影响。 -理解学习程序设计语言的作用; -了解几种语言的特点; -了解对程序语言影响的主要要素; -了解语言标准问题; -学习程序设计语言的基本计算模式;
[重点和难点]: 本章的重点是:程序设计语言的基本概念;好的 程序语言的基本特征; 本章的难点是:程序设计语言的一般计算模型; [知识点]: 程序;算法;数据结构;机器语言;汇编语言; 高级语言;翻译;可读性;可维护型;使用代价; 计算模型;
[重点和难点]: 本章的重点是:程序设计语言的基本概念;好的 程序语言的基本特征; 本章的难点是:程序设计语言的一般计算模型; [知识点]: 程序;算法;数据结构;机器语言;汇编语言; 高级语言;翻译;可读性;可维护型;使用代价; 计算模型;
第1章程序语言设计问题 1,1为什么学习程序设计语言(学习程序语言 有何作用)? 1,2程序设计语言的发展简史 1.3对程序语言影响的主要因素 1.4好语言的特征 1.5程序设计语言的基本计算模型 1.6语言标准 1.7编程环境
1.1为什么学习程序设计语言(学习程序语言 有何作用)? 1.2 程序设计语言的发展简史 1.3 对程序语言影响的主要因素 1.4 好语言的特征 1.5 程序设计语言的基本计算模型 1.6 语言标准 1.7 编程环境 第1章 程序语言设计问题
1.1为什么学习程序设计语言? 增强设计高效率算法的能力;(如 程序 递归) ●提高对现存程序语言的运用能力 算法 ●增加有用程序结构的词汇表; 可以对程序语言有更好的选择 更容易学习新语言 ●更容易设计出一种新语言; 数据结构 返回
1.1 为什么学习程序设计语言? ⚫ 增强设计高效率算法的能力;(如 递归) ⚫ 提高对现存程序语言的运用能力; ⚫ 增加有用程序结构的词汇表; ⚫ 可以对程序语言有更好的选择; ⚫ 更容易学习新语言; ⚫ 更容易设计出一种新语言; = + 程序 算法 数据结构 返回
1.2程序语言发展简史 ●机器语言—>汇编语言->高级语言 ●基于数字计算的语言,如 Fortran ●基于商业语言,如 COBOL;机器语言 ●人工智能语言,如L|SP; 低级语言 汇编语言 ●系统语言,如0语言; 几翻译 高级语言执行语言
1.2 程序语言发展简史 ⚫ 机器语言—>汇编语言—>高级语言; ⚫ 基于数字计算的语言,如Fortran; ⚫ 基于商业语言,如COBOL; ⚫ 人工智能语言,如LISP; ⚫ 系统语言,如C语言; 机器语言 高级语言 汇编语言 }低级语言 执行语言 翻译
语言的应用领域 商业: COBOL,C++,Java, Excel,. Delphi ●科学: Fortran,C,C++,Java, Delphi, Basic 系统:C,C++,Java,Ada ●人工智能:LISP, Prolog ●出版:Tex, Postscrip,word ●处理: Unix shell.TCL,Per, Javascript 返回
语言的应用领域 ⚫ 商业:COBOL,C++,Java,Excel,Delphi ⚫ 科学:Fortran,C,C++,Java,Delphi,Basic ⚫ 系统:C,C++,Java,Ada ⚫ 人工智能:LISP,Prolog ⚫ 出版:Tex,Postscript,Word ⚫ 处理:Unix shell,TCL, Perl, Javascript 返回
1.3对程序语言影响的主要因素 1)计算机性能:计算机性能价格比在不断提 高,嵌入了0s,使用高级语言成为可能。 °2)应用:从军事、科技、商业、工业领域_> 计算机游戏、个人计算机,乃至各个领域。 ●3)编程方法:简单程序_>复杂程序 技巧性一>可读性。 4)实现方法:设计新的数据结构和算法, 实现高效性>可维护性 ●5)理论研究:采用形式化的数学方法进行语 言数据结构、算法等设计、实现方面的研究。 6)标准化:强调可移植性。 返回
1.3 对程序语言影响的主要因素 ⚫ 1)计算机性能:计算机性能价格比在不断提 高,嵌入了OS,使用高级语言成为可能。 ⚫ 2)应用:从军事、科技、商业、工业领域—> 计算机游戏、个人计算机,乃至各个领域。 ⚫ 3)编程方法:简单程序—>复杂程序; 技巧性—>可读性。 ⚫ 4)实现方法:设计新的数据结构和算法, 实现高效性—>可维护性。 ⚫ 5)理论研究:采用形式化的数学方法进行语 言数据结构、算法等设计、实现方面的研究。 6)标准化:强调可移植性。 返回
1.4好语言的特征 1)透明性、简单性和统一性ε从语法上的区别就能 体现语义上的区别。 ●2)正交性:是指能将一种语言的各种特征以所有可 能的情况加以组合,并且每一种组合均有意义。例, 假设某种语言(如0)提供了能够产生值的表达式, 而且也提供了条件语句以计算一个表达式的值是真 或假。如果任何一个表达式在条件语句中都能使用 (和计算),那么这种语言中的这两个特征,即表 达式和条件语句就具有正交性。 正交性的好处:需要记忆的特殊情况较少,易于学 习和编程。缺点:可能包含逻辑不连贯性的特征组
1.4 好语言的特征 ⚫ 1)透明性、简单性和统一性:从语法上的区别就能 体现语义上的区别。 ⚫ 2)正交性:是指能将一种语言的各种特征以所有可 能的情况加以组合,并且每一种组合均有意义。例, 假设某种语言(如C)提供了能够产生值的表达式, 而且也提供了条件语句以计算一个表达式的值是真 或假。如果任何一个表达式在条件语句中都能使用 (和计算),那么这种语言中的这两个特征,即表 达式和条件语句就具有正交性。 ⚫ 正交性的好处:需要记忆的特殊情况较少,易于学 习和编程。缺点:可能包含逻辑不连贯性的特征组 合
●3)应用的自然性:使得程序结构能够反映出算 法的逻辑结构基础。理想情况下,能够将程序 设计直接转化成正确的反映算法结构的程序语 句(自然语言描述的算法可直接转化成程序语句) 4)抽象性的支持:能够支持抽象性的数据结构 (如包含有“学生、班级、教师、教室”等成 员的记录 Record,结构 Struct等)以及抽象的 操作(如给一个班级分配教室)。程序员的 项重要工作就是:设计抽象类、实现抽象类。 ●5)程序的易验证性:语义和语法的简单性是简 化程序验证的一个基本要素。 ●6)编程环境:集成化的编程环境。如ⅤB、VC、 VJ、 JBuilder、 Dell h等
⚫ 3)应用的自然性:使得程序结构能够反映出算 法的逻辑结构基础。理想情况下,能够将程序 设计直接转化成正确的反映算法结构的程序语 句(自然语言描述的算法可直接转化成程序语句)。 ⚫ 4)抽象性的支持:能够支持抽象性的数据结构 (如包含有“学生、班级、教师、教室”等成 员的记录Record,结构Struct等)以及抽象的 操作(如给一个班级分配教室)。程序员的一 项重要工作就是:设计抽象类、实现抽象类。 ⚫ 5)程序的易验证性:语义和语法的简单性是简 化程序验证的一个基本要素。 ⚫ 6)编程环境:集成化的编程环境。如VB、VC、 VJ、JBuilder、Delphi等