计算机编程语言

摘要】本文主要介绍了计算机编程语言的基本定义、分类以及各类编程语言的形式与特点,通过对各种编程语言的比较,来进一步理解计算机编程语言的实质。

关键词C  JAVA  机器语言 比较

正文

总述

计算机语言包括机器语言和高级语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能,比如汇编语言(assembly language)。机器语言具有灵活、直接执行和速度快等特点。高级语言比较容易识记和理解,像C B语言等。

 

 机器语言

由二进制数字 0 和 1 构成的语言我们称为机器语言, 它是计算机唯一能直接识别的语言。

 

    早期的计算设备曾使用十进制,如我国的算盘,法国的帕斯卡计算机;莱布尼兹从中国的八卦图得到启发,意识到计算机的设计可以采用二进制;布尔代数理论的成熟为二进制的应用奠定了理论基础; 香农把布尔代数理论应用到了电路实践;先是继电器用于计算机的制造,随着电子管的出现,电子时代来临, 1946年,第一台电子计算机 ENIAC 在美国诞生,它通过打孔的纸带向计算机内输入数据:有孔的地方表示 0 ,没孔的地方表示 1 (或相反); 1974年,第一台微机“牛郎星”诞生,它通过扳动面板上的开关来向电脑输入数

据:开关闭合表示 1 ,开关断开表示 0 (或相反);通过面板上的指示灯来表示输出信息:灯亮表示 1 ,灯灭表示 0 (或相反)。 可见,电脑发展初期人们通过机器语言现人机交互。 随着电脑的进一步发展,键盘、显示器的出现了,汇编语言以及BASIC 语言、 C 语言等高级语言也出现了,机器语言的使用已经越来越少了。

在某些时候机器语言还是有它的用武之地的,例如在对空间、效率的要求很严格的领域。 微软赖以起家的 BASIC 语言就是比尔盖茨用机器语言写出来的。 这里有必要提一下某些病毒,显然是某些心怀叵测的电脑高手所编写,他们为了减少病毒的大小,某些代码就是用机器语言写的。 某些软件的破解,就是通过逆向工程得到到软件的汇编代码甚至机器代码来进行分析实现的。

虽然我们现在很少用到机器语言,但是了解机器语言必会大大加深对计算机原理的理解,对病毒、计算机安全等的认识也能提高到一个新的层次。

 

 汇编语言

为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了汇编语言。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言亦称符号语言。汇编语言由于是采用了助记符号来编写程序,比用机器语言二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码。而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

汇编语言中由于使用了助记符号,用汇编语言编制的程序送入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的 “汇编程序“的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称源程序,运行时汇编程序要将源程序翻译成目标程序目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。

汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。

 

 高级语言

 不论是机器语言还是汇编语言都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以通用。

 如今被广泛使用的高级语言有BASICPASCALCCOBOLFORTRANLOGO以及VCVB等。这些语言都是属于系统软件

 

  C语言

    C 语言是相应的计算机的程序中的一种进行相关设计的

语言, 它包含了相关的高级语言的特点以及汇编语言的相应特

点。1972 年,美国贝尔研究所的 D.M.里奇推出了 C 语言。

在 1978 年之后,C 语言相继被移植到大、中、小的微机之上。

C 语言有着较为丰富的一些功能。 它首先可以进行对于相关工

作系统进行一定程度上的设计, 它还可以在一定程度上进行对

于相关应用程序的编写。 除此之外, 它同样也可进行对于相关

应用程序的设计。 相应的 C 语言具有较为广泛的应用。 具备很

强的数据处理能力, 不仅仅是在软件开发上, 而且各类科研都

需要用到 C 语言, 适于编写系统软件, 三维, 二维图形和动画。

具体应用比如单片机以及嵌入式系统开发。

   

    C 语言被广泛地进行使用是因为它具有较多的优点以及特点,主要如下:

(一)C 语言进行相关操作的时候较为简易,且具有一定的灵活性。它拥有着 32 个关键字以 9 种控制语言。对其进行相关的程序书写的形式较为自由, 并区分大小写。 它可以把相应的高级语言的一些基本结构与相应的低级语言的实用性进行一定程度上的结合。

(二) 对于 C 语言的相关运算符来说, 它说涉及的范围较为广泛, 它总共有着 3 运算符。 而相应的 C 语言对于一些括号、赋值以及一定程度上的强制类型的转换等, C 语言在进行对其的一定程度上的处理都将之视为运算符。 这样所达到的效果就是: 使得相应的 C 语言的运算类型较为丰富, 不像一些语言那样比较单一。 而且 C 语言的表达式类型也表现出一定程度上的多样化。

(三)在 C 语言中,除实现顺序、选择和循环三种基本结构等的 9 条控制语句外, 输入操作均由标准库函数来实现。 所以学习 C 语言, 不仅要学习这 9 条控制语句和各种运算符, 而且要学习并掌握常用标准库函数的使用。 函数是 C 语言程序的基本单位。 main()函数的作用, 相当于其它高级语言中的主程序; 其它函数的作用, 相当于子程序。 C 语言程序总是从 main()函数开始执行。一个 C 语言程序,总是从 main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。

(四)生成的目标代码质量高,程序执行效率高。可移植性好(较之汇编语言);可以直接操纵硬件。

(五)函数的一般结构。任何函数(包括主函数 main())都是由函数说明和函数体两部分组成,其一般结构如下:[函数类型]函数名(函数参数表)说明语句部分;执行语句部分;

(六)C 语言的函数体。在函数说明部分的下面、大括号(必须配对使用) 内的部分函数体一般由说明语句和可执行语句两部分构成。

(七)C 语言的源程序书写格式。所有语句都必须以分号“;”结束,函数的最后一个语句也不例外。程序行的书写格式自由, 既允许 1 行内写几条语句, 也允许 1 条语句分写在几行上。

(八)C 语言允许使用的注释。C 语言的注释格式为:/*......*/“/*”和“/*”必须成对使用, 且“/*”和“*“、以及“*”和“/”之是不能有空格, 否则都出错。 注释的位置,可以单占 1 行,也可以跟在语句的后面。如果 1 行写不下,可另起 1 行继续写。 注释中允许使用汉字, 在非中文操作系统下,看到的是一串乱码,但不影响程序运行。

(九)C 语言的语句。与其它高级语言一样,C 语言也是利用函数体中的可执行语句, 向计算机系统发出操作命令。 按照语句功能或构成的不同,可将 C 语言的语句分为五类。

   控制语句:控制语句完成一定的控制功能。C 语言只有 9条控制语句,又可细分为三种:

    选择结构控制语句:if()~else~,switch()~

    循环结构控制语句:do~while(),for()~,while()~,break,continue

    其它控制语句:goto,return

  函数调用语句: 函数调用语句由一次函数调用加一个分号语句结束标志) 构成。 表达式语句由表达工后加一个分号构成。 最典型的表达式语句是, 在赋值表达式后加一个分号构成的赋值语句。

C 语言的发展还在进行着,并且不断趋于完善,它具有较多的优点。然而,它也存在着一定程度上的弊端, 相信随着时代的发展, 相应的科学技术水平会不断的提高,会对 C 语言的一些弊端进行修改与完善。

 

JAVA

     1995年5月,当 Sun Mierosystems公司把Java在Internet上 分发时,立即引起世界的震动。从那时起, Java语言逐步成Internet

上的主力开发语言,成为Internet上的世界语。它彻底改变应用软件的开发模式,带来自PC机以来的又一次技术革命。成为人们关注的“

以网络为中心的计算时代”的一颗明星。在JAVA成为一种主流的平 台之前,它必须是一个被大多数公司、商用软件开发者所普遍接受的编程语言。也就是说,它应满足软件开发者的种种要求,并受到业界的普遍重视与兴趣。

Java包括四个部分:①Java语言 ,包括其语句、格式和定义;② Java虚拟机 ,包括 Java解释器、运行系统和环境;③Java基本应用编程接口( Base API)或叫核心 API( Core API);④Java标准扩展接口 ( Standard Extension API)。 其中 Java语言、基本 API 、扩展 API是一般应用开发最常用到的。

Java语言是一种适用于分布式计算环境的面向对象的程序设计语言。使用它可在各式各样不同机器、不同种操作平台的网络环境中开发软件。 Java语言彻底改变了应用软件的开发模式 ,带来了自 PC机以来又一次技术革命 ,为迅速发展的信息世界增添了新的活力。

Java语言具有以下特点:

1. Java是一种“超 C + + ”

Java语言是由改写 C而发展的一门新的编程语言 ,保留了C++ 的许多特点 ,语言结构与 C++ 大致相同 Java语言所有对象都是通过指向该对象结构的指针进行操作的 ,但不允许进行指针运算 ,即Java语言丢弃了 C++中危险的指针操作 ,保证了对网络管理的检查工作和安全性。Java语言采用了垃圾回收的自动存储管理技术 ,避免出现 C++中的内存泄露问题。Java是一个更简洁、安全的程序设计语言。

2. 平台无关性

Java语言依靠 Java虚拟机将 Java源代码编译成与机器无关的字节码 ,实现了目标代码级的平台无关性 ,从而实现了应用程序的“一次编写 ,到处运行”,大大加快和促进了软件产品的开发。迎合了网络计算机(NC)的思想 ,用户不需要大量的磁盘空间来存放应用软件 ,只需要Java解释器即可,应用软件只在需要时,通过Internet下载。

3. 与语种无关性

Java字符类型采用的是 Unicode 16位字符 ,可以支持所有的欧洲和亚洲语言。

4. 支持多线程

线程是从一个完整应用程序分出的单独的处理步骤 ,是程序内部的一个顺序控制流。一个小程序中可含一个或多个线程并可同时运行 ,实现多线程即用抢占资源的方式对多个线程实行轮流执行。Java语言内在支持多线程 ,有效地实现了多任务的并发执行。

5. 支持多媒体

Java中设计了Graphics类可方便地构造图形,开发了许多 Java包,在基本AWT集中增加了许多新的图形控件。只要 WWW浏览器上注明了“支持Java”,你就可看到生动的主页。实际上Java推出时 ,主要是演示 Java如何通过动画和交互性来为静止的 Web页增加情趣。

6. 加快了应用软件的小型化、网络化

在 Internet、Java时代 ,由众多小应用程序(Applet)相互协作完成信息的处理与传递 ,使巨型的、臃肿的应用软件向小型化发展。 Applet是一个对象 ,由一组属性和方法构成 ,有数据的状态和定义在其上的操作 ,是一个可执行的实体。

7. 易于学习

对于熟悉 C/C++ 的编程人员 ,只需另学很少的语法就可掌握 Java。

 

Java和C的比较

由于高级计算机编程语言种类的丰富性以及本文篇幅所限,这里就不能再更多的描述其他高级语言的特点及发展了,但在减少内容的同时,为了不使文章过于单调和空洞,以下的部分将对Java和C进行初步的比较,加强对两者的了解。

1、从编程思想来看

 C语言为面向过程语言,Java 为面向对象语言。

2、从对地址的可操作性上来看

 C语言可以直接对硬件操作;Java 不能直接对硬件操作。

小结:在硬件安全性上考虑;Java更安全,不容易引发硬件崩溃。

3、从效率上来看

 C语言效率非常高,在所有编程语言中名列前茅;Java 执行效率一般,计算效率还不错,总体上来讲效率马马虎虎。

4、从可移植性上来看

 C语言硬件依赖极高,一旦硬件环境改变,程序运行不能的可能性很高;java 硬件依赖几乎为零,只要机器装有相匹配的虚拟机,任何机器上编写的代码都可以通用。

 

5、语言背景:

 C语言是在单机时代应用非常广泛,它融合了高级语言的简单易用和汇编语言的执行效率;Java是在研究电子消费产品开发平台和互联网应用的基础上实现的,它的许多语言特性也是从c语言那里沿用和发展,并且使面向对象更加自然和完善(如安全性和代码的移动性)。

6、语言跨平台:

 C语言不可以跨平台;Java可以跨平台,在windows 和 unix 等系统上都可以很好的运行。

7、指针管理:

    指针是c语言最大的优点,它可以使用户几乎可以访问计算机的所有内存资源和其他部分资源(就是指那里打那里)。同时也是c语言程序最难掌握和调试的问题,并且给系统的安全性和稳定性带来很大的困难;

    java中没有指针的概念,尽管也有数组和对象的引用的概念,但它的管理全部交给系统管理,这样限制了用户的资源的访问,但是也给java系统带来安全性和稳定性。JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。

9、封装

 c语言中没有package概念,需要其他方式来实现;

 在java中引入了package的概念,使面向对象和面向组件开发更加方便, Java都能够实现面向对象思想(封装,继乘,多态)。JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c语言的固有缺陷。

10、数据类型及类

 c语言允许将函数和变量定义为全局的;

 Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。

11、自动内存管理

 C语言没有内存管理,必须手动(添加语句)释放内存,增加了程序设计者的负担; Java程序中所有的对象都是用new操作符建立在内存堆栈上, Java自动进行无需内存回收操作,不需要程序员进行删除。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。

12、字符串:

 C语言不支持字符串变量,在c语言程序中使用Null终止符代表字符串的结束;

 Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心!

 另:Java没有函数,作为一个比c语言更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。

以上就是综合各类文献资料以及个人总结得出的高级编程语言C于Java之间的区别。

总结】本文在写作过程中,参考了大量的中外文文献资料,属于对编程语言的概况介绍,内容多源于广大计算机工作者的实践,本人在应用上并没有达到其高度,所以只是希望通过编写此文,加深自己对编程语言的了解,为以后学一工作中的应用打下基础。


时间:2019年10月12日    作者:源思维    分类:STEAM   浏览:188    

链接地址:http://www.yuansiwei.com/STEAM_%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80.html