计算机语言发展史(No.6)
1、第一代语言(First Generation Language)
第一代语言统称为"机器语言"。
1.1、机器语言(Machine Language)
机器语言是一种计算机直接识别的二进制代码(Binary Code)。
-
优点(Advantage)
直接执行,速度快,资源占用少。
-
缺点(Shortcoming)
可读性、可移植性差,编程繁杂。
2、第二代语言(Second Generation Language)
第二代语言统称为"汇编语言"。
2.1、汇编语言(Assembly Language)
汇编语言是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
-
优点(Advantage)
1、可以轻松读取当前存储器状态以及硬件I/O接口情况。
2、编写代码因为少了很多编译的环节,可以能够准确的被执行。
3、作为一种低级语言,可扩展性很高。
-
缺点(Shortcoming)
1、因为代码非常单调,特殊指令字符很少,所以造成了代码冗长以及编写困难。
2、因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易。
3、就算完成了一个程序,后期维护时候也需要耗费大量的时间。
4、因为机器的特殊性容易造成了代码兼容性差的缺陷。
-
应用(Application)
1、逆向工程。
2、机器人。
3、病毒。
3、第三代语言(Third Generation Language)
第三代语言统称为"高级语言"。
高级语言(High-level Programming Language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。
-
摩尔定律(Moore's Law)
当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,约每隔18个月将翻两倍以上。
3.1、面向过程语言(Procedure Oriented Language)
面向过程语言也称为结构化程序设计语言,是高级语言的一种。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数则用于完成这些任务,解决问题的焦点集中于函数。其概念最早由E.W.Dijikstra在1965年提出,是软件发展的一个重要里程碑。它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序,即任何程序都可由顺序、选择、循环三种基本控制结构构造。
3.1.1、C语言(C Language)
C是一门面向过程、抽象化的通用程序设计语言,广泛应用底层开发。C能以简易的方式编译、处理低级存储器。
C是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
3.1.2、Fortran语言(Formula Translation Language)
FORTRAN是Formula Translation的缩写,意为“公式翻译”。它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。
FORTRAN是世界上第一个被正式推广使用的高级语言。它是1954年被提出来的,1956年开始正式使用,直到2021年已有六十年的历史,但仍历久不衰,它始终是数值计算领域所使用的主要语言。
3.2、面向对象语言(Object-Oriented Language)
面向对象语言是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。
3.2.1、C++语言(C++ Language)
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++擅长面向对象程序设计同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行实用性特征,同时致力于提高大规模程序的编程质量与程序设计语言问题描述能力。
3.2.2、Java语言(Java Language)
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java作为静态面向对象编程语言的代表,极好地实现面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平*立与可移植性、多线程、动态性等特点。
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
-
Java三种形态(Three Forms Of Java)
Java有三种不同的形态,分别对应不同的程序形态和运行平台。
-
Java SE(Java Standard Edition,Java标准版)
Java SE是Java技术的核心和基础,是Java ME和Java EE编程基础 。
Java SE用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。
-
Java EE(J2EE[Java 2 Platform Enterprise Edition,Java 2 平台企业版])
Java EE 是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。
J2EE是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准,或者说,它是在SUN公司领导下,多家公司参与共同制定的企业级分布式应用程序开发规范。目前,J2EE是市场上主流的企业级分布式应用平台的解决方案 。
Java EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。广泛应用于WEB程序设计等。
-
Java ME(J2ME[Java 2 Platform Micro Edition,Java 2平台微版本])
Java ME又称为J2ME,是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。
Java ME与Java SE、Java EE一起构成Java技术的三大版本,通过JCP(Java Community Process,Java社区进程)制订。
Java ME是Java微版的简称,是一个技术和规范的集合,为移动设备提供基于Java环境的开发与应用平台。
-
3.2.3、C#语言(C Sharp Language)
C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。
最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
3.2.4、PHP语言(Pre Hypertext Preprocessor Language)
PHP(Pre Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言主要目标是允许web开发人员快速编写动态网页。
PHP脚本程序主要应用于Web服务端开发,命令行和编写桌面应用程序。PHP支持和所有web开发语言之间的WDDX复杂数据交换。关于相互连接,PHP已经支持对Java对象即时连接,并且可以透明地将其用作PHP对象。
PHP可以分别使用面向过程和面向对象,而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言做不到的。
3.2.5、Python语言(Python Language)
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。
Python可用于可定制化软件中扩展程序语言。Python丰富标准库,提供适用各个主要系统平台源码或机器码。
参考资料
百度百科—机器语言、百度百科—汇编语言、百度百科—高级语言、百度百科—摩尔定律、百度百科—面向过程语言、百度百科—C语言、百度百科—Fortran语言、百度百科—面向对象语言、百度百科—C++语言、百度百科—Java语言、百度百科—Java SE、百度百科—Java EE、百度百科—J2EE、百度百科—Java ME、百度百科—J2ME、百度百科—C#语言、百度百科—PHP语言、百度百科—Python语言