一、学习内容
(一)、计算机语言的种类
1. 机器语言
- 定义:是用二进制代码表示的计算机能直接识别和执行的一种机器指令和集合;
- 特点:灵活、直接执行、速度快;
- 缺点:难读、难编、难记、易出错;
2. 汇编语言
- 定义:用助记符表示的仍然面向机器的计算机语言,比机器语言要方便,在一定程度上简化了编程过程;
- 特点:符号代替机器指令代码,保留了灵活性;
- 缺点:仍然是机器语言,费时、通用性差,是低级语言;
- 用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的优点;
3. 高级语言
- 定义:与自然语言相近并为计算机所接受和执行的计算机语言;
- 高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行;
- 按转换方式分类:
(1)解释类:将相应语言翻译成机器语言,效率低,比较灵活可以动态的调整和修改应用程序;
(2)编译类:在应用程序执行之前,将源代码翻译成机器语言,特点是独立执行,使用方便效率高;
(二)4GL第四代语言
1. 程序设计语言的规划观点
- 分为五个阶段
(1)第一代语言1GL——机器语言;
(2)第二代语言2GL——编程语言;
(3)第三代语言3GL——高级程序设计语言(C、C++、JAVA);
(4)第四代语言4GL——更接近自然语言的高级程序语言;
(5)第五代语言5GL——用于人工智能、人工神经的网络语言;
2. 4GL第四代语言简介
- 20世纪80年代出现;
- 1985年美国召开全国性的4GL研讨大会;
- 以数据库管理系统所提供的功能为核心;
- 20世纪90年代广泛应用,成为面向数据库开发的主流工具;
- 是编程语言也是编程环境;
- 在3GL的基础上发展的,概况和表达能力更强;
- 特点:简单易学,用户界面良好,非过程化程度高,面向问题;
- 不足:只面向专项应用,软硬件消耗资源加重,缺乏工业标准可移植性差,不宜于科学计算、高速的实时系统和系统软件开发;
- 确定标准:生产率标准、非过程化标准、用户界面标准、功能标准;
3. 第四代语言的分类
- 按功能分类
(1)查询语言和报表生成器:提供查询功能和自动产生报表工具;
(2)图形语言:表达更直观鲜明;
(3)应用生成器:综合的4GL工具生成完整的应用系统;
(4)形式规格说明语言:避免歧义性、不精确性;
4. 第四代语言的应用前景
- 4GL与面向对象技术将进一步结合;
- 4GL将全面支持以Internet为代表的网络分布式应用开发;
- 4GL将出现事实上的工业标准;
- 4GL将以受限的自然语言加图形作为用户界面;
- 4GL将进一步与人工智能结合;
- 4GL继续需要数据库管理系统的支持;
- 4GL要求软件开发方法发生变革;
(三)典型编程工具的特点
1. Basic语言与Visual Basic
- 优点:简单易学、VB提供了强大的可视化编程能力,控件多,全汉化环境;
- 缺点:不是真正的面向对象的开发工具,数据类型少,不支持指针,不是编译型语言,他需要动态链接库解释执行,所以编译速度慢;
2. Pascal语言和Delphi
- 优点:语言结构严谨,面向对象,完全可视化,编译速度快,有强大的数据库开发能力;
- 缺点:完美的,但是过于严谨;
3. C语言和Visual C++
- 优点:灵活性好,效率高,可以接触底层的东西,MFC库博大精深,VC是微软的产品,与操作系统结合更紧密;
- 缺点:对使用者要求高,要丰富的编程经验和操作系统基础;
4. C++语言和C++ Builder
- 优点:完全可视化、极强兼容性、编译速度快;
- 缺点:推出时间短,资料不齐全;
5. Power Builder
- 优点:支持应用系统同时访问多种数据库,完全可视化,简单易学,C/S开发的完全的可视化开发环境,跨平台;
- 缺点:资料不多,熟悉的人也不多;
6. Java语言
- 优点:平台无关性,安全性,分布式,健壮性;
- 缺点:限制了对内存的操作和垃圾回收容易内存泄漏;
(四)编程工具之间的比较
1. Java与C/C++语言
- 全局变量:Java不能定义程序的全局变量,静态变量相当全局变量而C/C++不加封装的全局变量使用不当会造成系统崩溃;
- 条件转移指令:C/C++使用goto无条件跳转而Java用try catch finally来跳转;
- 指针:是C/C++中最灵活也容易出错的数据类型,而Java没有指针;
- 内存管理:C中使用malloc和free来分配和释放内存,C++中是new和delete,Java中是new,无用对象会自动回收;
- 数据类型的一致性:C/C++可以通过指针任意转化,不安全,Java中比较严格的相容性检查;
2. JSP和ASP比较
- JSP和服务器相独立,输入支持广泛,ASP依赖微软技术支持;
- JSP一次写入,运行在Java TM语法结构的环境,支持多久开发商提供的工具包;
- ASP基于ActiveX控件技术提供的开发组件,环境是IIS应用程序结构,具有平台特性,跨平台比较难;
- ASP仅支持对象模型COM,而JSP是基于Javabean和JSP标签库;
3. .net 和Java的区别
- 相同点:面向对象且简单,背景强大;
- 不同点:Java从C++演变而来,.net从Java演变而来,应用领域不同,.net中小型网站和桌面应用开发,Java大型企业和银行网站开发和收集嵌入式游戏开发;
- .net相较简单而Java偏难;
- .net要求低;
二、练习
(一)名词解释
1. 机器语言
答:用二进制代码表示计算机能直接识别和执行的一种机器指令的集合;
2. 汇编语言
答:又称符号语言,是一种用助记符表示的仍然面向机器的计算机语言,采用了助记符来编写程序,比用机器语言的二进制代码编程要方便写,在一定程度上简化了编程过程。
3. 高级语言
答:一种与自然语言相近并为计算机所接受和执行的计算机语言,高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行;
4. 4GL
答:第四代语言,是一种编程语言或是为了某一目的的编程环境。在演化计算机,第四代语言是在第三代语言基础上发展的,且概括和表达能力更强;
(二)简答
1. 简要介绍五代计算机语言;
答:
(1)1GL机器语言;
(2)2GL编程语言;
(3)3GL高级程序设计语言;
(4)4GL更接近人类自然语言的高级程序设计语言;
(5)5GL用于人工智能,人工神经网络的语言;
2. 如何确定一种语言是4GL?
答:
(1)生成率标准;
(2)非过程化标准;
(3)用户界面标准;
(4)功能标准;
3. 4GL有哪几类?
答:
(1)查询语言和报表生成器;
(2)图形语言;
(3)应用生成器;
(4)形式规格说明语言;
(三)分析题
1. 请分析4GL的发展和应用前景。
答:
发展:
(1)最早是在20世纪80年代初期出现在软件厂商的广告和产品介绍中的;
(2)1985年美国召开了全国性的4GL研讨会,使4GL进入了计算机看科学的研究范畴;
(3)进入20世纪90年代,大量基于数据库管理系统的4GL商品化软件已在计算机应用开发领域中获得广泛应用,成为了面向数据库应用开发的主流工具;
应用前景:
(1)4GL与面向对象技术进一步结合;
(2)4GL将全面支持以Internet为代表的网络分布式应用开发;
(3)4GL将出现事实上的工业标准;
(5)4GL将进一步与人工智能相结合;
(6)4GL继续需要数据库管理系统的支持;
(7)4GL要求软件开发方法发生变革;