算法是指为解决某个特定问题而采取的确定且有限的步骤。用来表达算法的计算机程序设计语言称为算法语言(Algorithmic language)。算法语言是算法的一种描述工具,是介于
机器语言和数学语言之间的一种通用语言。
简介
计算机语言分机器语言、
汇编语言和高级语言。其中高级语言是一类人工设计的语言,因为它对具体的算法进行描述,所以又称为算法语言。
计算机现已广泛应用于社会生活的各个领域,成为大众化的现代工具。人们将需要计算机做的工作写成一定形式的指令,并把它们存储在计算机内部的存储器中,当人们给出命令之后,它就按指令顺序自动进行操作。人们把这种可以连续执行的一条条指令的集合称为“程序”。可以说,程序就是人与机器“对话”的语言,也就是我们常说的“程序设计语言”。
目前,在社会上使用的程序设计语言有上百种,如C、Visual Basic、C++和Java等被称为计算机的“高级语言”。这些语言都是用接近人们习惯的自然语言和数学语言作为表达形式,使人们学习和操作起来感到十分方便。
常见算法语言有BASIC、
FORTRAN、COBOL、PASCAL、C、C++和JAVA等。
发展史
自从1946年第一台电子计算机问世,编写与调试程序的工作就与人们结下了不解之缘。最初的计算机程序只能用二进制机器指令代码书写。用这种办法写出的程序难懂、难调试、冗长,而且通用性差,改进编程方式的原始的尝试是用较为易记的“助记符”表示二进制的指令,且在程序中引进变量,从而使程序变得比较易读。同时也在一定程度上缓解了由存储安排引起的困难。但这并未给编程工作带来根本性的改进,于是更为接近自然语言的算法语言应运而生。算法语言易学,用算法语言编写的程序易读、易调试而且简洁。此外,算法语言独立于计算机的指令系统,即用算法语言编写的程序可以在装有该语言编译系统的任何计算机上运行。这使得学习和使用计算机变得较为简单。同时促进了计算机间的信息交流。
最先出现的算法语言是ALGOL,目前较为流行的语言有ALGOL、FORTRAN、COBOL、BASIC、PASCAL和C等。算法语言可以依据各自的特点进行分类,ALGOL、FORTAL 等语言适于科学计算。属于面向过程的语言。COBOL是英文通用商业语言的缩写,面向数据处理。PASCAL、C等语言强调程序结构,主张尽可能少用无条件转移语句,称为结构化语言。
随着人工智能的发展,出现了LISP、PROLOG等语言, LISP也叫表处理语言, 利用LISP可以方便地进行符号处理。PROLOG以逻辑推理作为出发点,其程序由一系列规则和事实构成,运行时用户提出询问,计算机自动搜索答案。LISP与PROLOG都具有一定的解决智能型问题的能力。
分类
从应用范围看,算法语言中有专门为进行各种数值计算而设计的语言,如ALGOL60、
FORTRAN语言等,以及专门为进行数据处理和管理而设计的语言,如COBOL语言等,这些语言适用于一类问题,称为通用语言;也有专门为处理某一特定问题或适应某一特定部门而设计的语言,如系统模拟语言(MIMIC) 等,这些语言称为专用语言。
从语言功能角度看,计算机语言可分为面向过程的语言和面向问题的语言。面向过程的语言,可用于各种计算机计算各种题目,使用这种语言时,不仅要把计算的题目告诉计算机,还要将解题的方法和计算过程描述出来; 面向问题的语言,则只需把题目告诉计算机,就可得到计算结果。
特点
算法语言是由表达各种不同意义的“关键字”和“表达式”等,按照一定的语法、语义规则组成的,从而脱离了指令系统。是相对独立于计算机的语言,用它书写的程序适用于不同的计算机。
算法语言接近于人们习惯的自然语言和数学语言,因此易学,通用性强。用算法语言编制计算机程序,只要懂得各种语言的词法、句法及数学公式,按一定的语法规则进行即可,编写者可以不必懂得计算机的内部结构和工作原理。
计算机并不能直接识别由算法语言编写的程序,它只能接受和处理由0和1的代码构成的二进制指令或数据(机器语言),因此需要翻译程序将其翻译为机器语言程序才能执行。
应用
学习算法语言的目的,是要用语言作为工具,设计出可供计算机运行的程序。
简单的程序设计一般包含以下几个部分:
(1)确定数据结构。根据任务书提出的要求、指定的输入数据和输出结果,确定存放数据的数据结构。
(2)确定算法。针对存放数据的数据结构来确定解决问题、完成任务的步骤。
(3)编码。根据确定的数据结构和算法,使用选定的算法语言编写程序代码,输入到计算机并保存在磁盘上。
(4)在计算机上调试程序。消除由于疏忽而引起的语法错误或逻辑错误;用各种可能的输入数据对程序进行测试,使之对各种合理的数据都能得到正确的结果,对不合理的数据能进行适当的处理。
(5)整理并写出文档。
常见算法语言
C语言
一种通用的面向结构的程序设计语言。源自Ken Thompson发明的B语言。高效、经济和良好的可移植性,使其它语言无法与之比拟。其特点为:
①以英文小写字母为字符基础。
②提供一个较大的操作符集合,操作符对应最短的机器代码。
③C语言是函数的集合。函数的参数按“值传送”和“值调用”方式进行。
④C语言提供了一整套循环、条件判断和转移语句,有利于进行结构化程序设计。
⑤C语言数据类型丰富,除基本类型外用户可自定义数据类型,另外,指针类型也可以作为数据进行处理,利用指针可以直接访问内存的绝对地址。
⑥C语言通过预处理可进行常数定义、宏定义和条件编译等。
⑦C语言的很多功能,如屏幕操作、过程控制、串处理、I/O存贮分配等,可通过库函数实现。
⑧C语言灵活、可移植性好,易于维护。
一个优秀的C程序在执行速度上可与汇编语言相比。
BASIC
BASIC(Beginner's All-purpose Symbolic Instruction Code的缩写),是一种直译式程序设计语言。名称字面意思为“初学者的全方位符式指令代码”,设计给初学者使用的编程语言,在完成编写后不须经由编译及链接等手续,经过解释器即可运行,但如果需要单独运行时仍然需要将其创建成可执行文件。
BASIC 语言是由Dartmouth学院John G. Kemeny与Thomas E. Kurtz两位教授于20世纪60年代中期所创。由于立意甚佳,BASIC语言简单、易学的基本特性,很快的就普遍流行起来,几乎所有小型、微型以家用电脑,甚至部分大型电脑,都有提供使用者以此种语言撰写程式。在微电脑方面,则因为BASIC语言可配合微电脑操作功能的充分发挥,使得BASIC早已成为微电脑的主要语言之一。
Java
又称“佳娃语言”、“爪哇语言”,一种广泛使用的网络编程语言。它简单,面向对象,不依赖于机器的结构,具有可移植性、稳健性、安全性,并且提供了并发的机制,因而它能最大限度地利用网络。
美国SUN公司于1995年5月正式公开推出的新一代编程语言。它是一种面向对象跨平台分布式语言,全球因特网(Internet)上的世界通用高级编程语言。Java语言的出现给程序设计语言的发展带来了新的生机和活力。Java语言不但通过浏览器使Web页面栩栩如生,而且作为一种新的计算概念影响到诸多方面,使其发生变化。
c++
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以
抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。