计算机程序设计语言
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 一般都以文本形式存在,类似于一种命令
– 最简单的脚本语言就是配置文件
• 执行过程
– 脚本语言是一种解释性的语言 – 脚本语言一般都有相应的脚本引擎来解释执行 – 脚本语言主要指该语言面向的开发环境,脚本语言一般局
限在某一个特定环境。
• 编程语言的语法和规则更为严格和复杂,脚本语 言相对灵活
20
语言关注情况排名
8
工业时代的开始
• SIMULA67
– 数据抽象的开始,第一次提出class
• Smalltalk
– 真正的面向对象程序设计语言(数据抽象、基 础和动态绑定)
– 图形化的交互语言(系统)
• 特点
– 万物皆对象,包括控制流 – 使用消息在对象间通信
9
工业时代
• C++
– 继承了C语言的灵活特征 – 仍然强调效率 – 从Eiffel到D语言
Position Mar 2009 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Position Mar 2008 1 2 5 4 3 7 8 10 6 9 11 12 13 22 14 17 29 26 21 18
Programming Language Java C C++ PHP (Visual) Basic Python C# JavaScript Perl Delphi Ruby D PL/SQL Logo SAS Pascal ABAP RPG (OS/400) ActionScript Lua
• SQL在一定程度也有这种特点
14
过程式语言的基本特征
• 变量、作用域和生存期 • 数据类型(记录和指针) • 表达式与赋值语句 • 控制流(Goto is harmful) • 子程序与递归 • 异常处理
15
解释性语言 vs. 编译性语言
• 执行流程 • 性能
– 目前计算机硬件的发展使得解释程序的性能代价在很多场 合可以忽略
• ALGOL58/ALGOL60
– 严谨的现代语言的鼻祖之一 – 在20年间,成为出版刊物中的唯一语言 – 主要贡献:BNF – 没有得到广泛实际应用
• COBOL
– 商务记录处理
6
中世纪-1:过程化语言逐渐成熟
• BASIC(1963)
– 第一个结合分时操作,简单易学的语言
• PL/1
– IBM为主设计的一个通用语言 – 结合ALGOL,FORTRAN,COBOL既一些其他新特性的通用
语言 – 第一次提出:并发机制、异常处理、过程化递归、指针 – 过于复杂,部分成功
• Ada
– 历史上最大规模的语言设计(美国军方)
7
中世纪-2: ALGOL的后继
• Pascal
– 成功的教学语言 – Delphi
• C语言Байду номын сангаас
– 与unix共同成长 – 简单、高效、相信程序员 – 目前系统级程序设计首选语言
计算机程序设计语 言
发展与比较
2010年3月18日
目录
• 程序设计语言的发展史 • 不同类型的程序设计语言 • 当前流行语言分析
– 国际上 – 国内
• 语言间的对比
– C++ vs Java
2
计算机语言
• 用于人与计算机之间交互的语言。是人与计 算机之间传递信息的媒介。
– 程序设计语言
• 低级语言 • 高级语言 • 专用语言
– 命令语言
• 作业控制语言 • SQL
– 描述语言
• HTML、XML
3
编程语言分类
• 低级语言-汇编语言 • 函数式程序设计语言 • 逻辑程序设计语言 • 通用程序设计语言
– 面向过程的程序设计语言 – 面向对象的程序设计语言
4
计算机编程语言谱系图
5
古典时代
• FORTRAN
– 第一个高级语言,主要用于科学计算
• Lisp特点
– 万物皆函数 – 基本数据结构:表 – 基本控制流程:递归 – 解释语言 – 主要用于人工智能,也可用于各种其他用途
13
逻辑程序设计语言
• Prolog
– 1970’s – 在1980’s日本人工智能计划时得到关注
• 特点
– 基于谓词演算,给出事实和规则 – 实现定理证明 – 只需要说明问题,无需指定流程
– Javascript
11
几种现代流行语言谱系
Pascal
Delphi
Objective-C
JavaScript
C语言
C++
Basic
VB
Perl
Java
JSP
C#
Asp PHP
12
Asp.NET Ruby
Python
函数式程序设计语言
• Lisp
– Logo、Scheme、Common Lisp
• ECMAScript(JavaScript)是一个动态语言的代 表,除此之外如PHP、Ruby、Python等也都 属于动态语言。
• 动态语言是一种可“自创造”的语言,典 型的都有eval这样的语法要素。
18
关于类型的几个概念
• 动态语言大部分是动态类型语言 • 动态语言和大部分动态类型语言都是解释执
• 跨平台性:解释程序与虚拟机 • 灵活性
– 自解释 – 运行时修改、创建程序 – 自执行
• 目前解释性语言的应用比例逐渐提高
16
静态类型语言 vs. 动态类型语言
• 变量的数据类型是在运行前静态确定的,还是 运行时动态确定的,称之为静态类型语言 (Statically Typed Languages)和动态类型语言 (Dynamically Typed Languages)
• Java
– 从嵌入式编程过渡到web应用 – 更加严谨的面向对象机制
• C#
– 与微软的dot net紧密结合
10
后工业时代
• 脚本语言
– unix系统脚本语言 – Perl、Python、Ruby、Lua
• 动态类型语言
• WEB服务器开发语言
– JSP – PHP – ASP
• WEB页面端开发语言
行的,但解释语言不一定是动态语言 (Basic),也不一定是动态类型语言 (Java)。 • 静态类型语言可以是“强类型的”或是“弱 类型的” • 可以在兼容类型(包括类)之间进行隐含的 或显式的类型转换,部分语言可以进行强制 类型转换。
19
脚本语言
• 介于文本描述语言(HTML等)和高级编程语言之 间
• 动态类型语言具有更大的灵活性,很适于写出 通用程序。而静态类型语言很难做到这一点 (如C语言中void *和C++中的模板)。
• 动态类型的缺点在于发现错误的能力较差、 运行代价高
• 包括面向对象中的多态类的判定。
17
动态语言
• 一类在运行时可以改变其结构的语言:例 如可以动态执行生成的代码,产生新的函 数、对象定义、已有的函数可以被删除或 是其他结构上的变化等。
– 最简单的脚本语言就是配置文件
• 执行过程
– 脚本语言是一种解释性的语言 – 脚本语言一般都有相应的脚本引擎来解释执行 – 脚本语言主要指该语言面向的开发环境,脚本语言一般局
限在某一个特定环境。
• 编程语言的语法和规则更为严格和复杂,脚本语 言相对灵活
20
语言关注情况排名
8
工业时代的开始
• SIMULA67
– 数据抽象的开始,第一次提出class
• Smalltalk
– 真正的面向对象程序设计语言(数据抽象、基 础和动态绑定)
– 图形化的交互语言(系统)
• 特点
– 万物皆对象,包括控制流 – 使用消息在对象间通信
9
工业时代
• C++
– 继承了C语言的灵活特征 – 仍然强调效率 – 从Eiffel到D语言
Position Mar 2009 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Position Mar 2008 1 2 5 4 3 7 8 10 6 9 11 12 13 22 14 17 29 26 21 18
Programming Language Java C C++ PHP (Visual) Basic Python C# JavaScript Perl Delphi Ruby D PL/SQL Logo SAS Pascal ABAP RPG (OS/400) ActionScript Lua
• SQL在一定程度也有这种特点
14
过程式语言的基本特征
• 变量、作用域和生存期 • 数据类型(记录和指针) • 表达式与赋值语句 • 控制流(Goto is harmful) • 子程序与递归 • 异常处理
15
解释性语言 vs. 编译性语言
• 执行流程 • 性能
– 目前计算机硬件的发展使得解释程序的性能代价在很多场 合可以忽略
• ALGOL58/ALGOL60
– 严谨的现代语言的鼻祖之一 – 在20年间,成为出版刊物中的唯一语言 – 主要贡献:BNF – 没有得到广泛实际应用
• COBOL
– 商务记录处理
6
中世纪-1:过程化语言逐渐成熟
• BASIC(1963)
– 第一个结合分时操作,简单易学的语言
• PL/1
– IBM为主设计的一个通用语言 – 结合ALGOL,FORTRAN,COBOL既一些其他新特性的通用
语言 – 第一次提出:并发机制、异常处理、过程化递归、指针 – 过于复杂,部分成功
• Ada
– 历史上最大规模的语言设计(美国军方)
7
中世纪-2: ALGOL的后继
• Pascal
– 成功的教学语言 – Delphi
• C语言Байду номын сангаас
– 与unix共同成长 – 简单、高效、相信程序员 – 目前系统级程序设计首选语言
计算机程序设计语 言
发展与比较
2010年3月18日
目录
• 程序设计语言的发展史 • 不同类型的程序设计语言 • 当前流行语言分析
– 国际上 – 国内
• 语言间的对比
– C++ vs Java
2
计算机语言
• 用于人与计算机之间交互的语言。是人与计 算机之间传递信息的媒介。
– 程序设计语言
• 低级语言 • 高级语言 • 专用语言
– 命令语言
• 作业控制语言 • SQL
– 描述语言
• HTML、XML
3
编程语言分类
• 低级语言-汇编语言 • 函数式程序设计语言 • 逻辑程序设计语言 • 通用程序设计语言
– 面向过程的程序设计语言 – 面向对象的程序设计语言
4
计算机编程语言谱系图
5
古典时代
• FORTRAN
– 第一个高级语言,主要用于科学计算
• Lisp特点
– 万物皆函数 – 基本数据结构:表 – 基本控制流程:递归 – 解释语言 – 主要用于人工智能,也可用于各种其他用途
13
逻辑程序设计语言
• Prolog
– 1970’s – 在1980’s日本人工智能计划时得到关注
• 特点
– 基于谓词演算,给出事实和规则 – 实现定理证明 – 只需要说明问题,无需指定流程
– Javascript
11
几种现代流行语言谱系
Pascal
Delphi
Objective-C
JavaScript
C语言
C++
Basic
VB
Perl
Java
JSP
C#
Asp PHP
12
Asp.NET Ruby
Python
函数式程序设计语言
• Lisp
– Logo、Scheme、Common Lisp
• ECMAScript(JavaScript)是一个动态语言的代 表,除此之外如PHP、Ruby、Python等也都 属于动态语言。
• 动态语言是一种可“自创造”的语言,典 型的都有eval这样的语法要素。
18
关于类型的几个概念
• 动态语言大部分是动态类型语言 • 动态语言和大部分动态类型语言都是解释执
• 跨平台性:解释程序与虚拟机 • 灵活性
– 自解释 – 运行时修改、创建程序 – 自执行
• 目前解释性语言的应用比例逐渐提高
16
静态类型语言 vs. 动态类型语言
• 变量的数据类型是在运行前静态确定的,还是 运行时动态确定的,称之为静态类型语言 (Statically Typed Languages)和动态类型语言 (Dynamically Typed Languages)
• Java
– 从嵌入式编程过渡到web应用 – 更加严谨的面向对象机制
• C#
– 与微软的dot net紧密结合
10
后工业时代
• 脚本语言
– unix系统脚本语言 – Perl、Python、Ruby、Lua
• 动态类型语言
• WEB服务器开发语言
– JSP – PHP – ASP
• WEB页面端开发语言
行的,但解释语言不一定是动态语言 (Basic),也不一定是动态类型语言 (Java)。 • 静态类型语言可以是“强类型的”或是“弱 类型的” • 可以在兼容类型(包括类)之间进行隐含的 或显式的类型转换,部分语言可以进行强制 类型转换。
19
脚本语言
• 介于文本描述语言(HTML等)和高级编程语言之 间
• 动态类型语言具有更大的灵活性,很适于写出 通用程序。而静态类型语言很难做到这一点 (如C语言中void *和C++中的模板)。
• 动态类型的缺点在于发现错误的能力较差、 运行代价高
• 包括面向对象中的多态类的判定。
17
动态语言
• 一类在运行时可以改变其结构的语言:例 如可以动态执行生成的代码,产生新的函 数、对象定义、已有的函数可以被删除或 是其他结构上的变化等。