计算机语言包括机器语言、彙编语言、高级语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬体结构赋予计算机的操作功能,比如彙编语言(assembly language)。机器语言具有灵活、直接执行和速度快等特点。高级语言比较容易识记和理解,像C B语言等。
基本介绍
- 中文名:程式语言
- 外文名:LANGUAGE
- 机器语言:二进制代码
- BASIC语言:初学者通用符号指令代码
- 开发工具:PASCAL、C、COBOL
- 特点:灵活、直接执行和速度快
语言分类
机器语言
用机器语言编写程式,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程式时,程式设计师得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程式花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程式全是些0和1的指令代码。直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数程式设计师已经不再去学习机器语言了。
彙编语言
为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了彙编语言。所以说,彙编语言是一种用助记符表示的仍然面向机器的计算机语言。彙编语言亦称符号语言。彙编语言由于是採用了助记符号来编写程式,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。彙编语言的特点是用符号代替了机器指令代码。而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用彙编语言能面向机器并较好地发挥机器的特性,得到质量较高的程式。

彙编语言中由于使用了助记符号,用彙编语言编制的程式送入计算机,计算机不能象用机器语言编写的程式一样直接识别和执行,必须通过预先放入计算机的 “彙编程式“的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程式。用彙编语言等非机器语言书写好的符号程式称源程式,运行时彙编程式要将源程式翻译成目标程式。目标程式是机器语言程式,它一经被安置在记忆体的预定位置上,就能被计算机的CPU处理和执行。
彙编语言像机器指令一样,是硬体操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。彙编语言是低级语言。但是,彙编语言用来编制系统软体和过程控制软体,其目标程式占用记忆体空间少,运行速度快,有着高级语言不可替代的用途。
高级语言
不论是机器语言还是彙编语言都是面向硬体的具体操作的,语言对机器的过分依赖,要求使用者必须对硬体结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广套用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程式,则用该高级语言编写的程式就可以通用。
如今被广泛使用的高级语言有BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VB等。这些语言都是属于系统软体。
计算机并不能直接地接受和执行用高级语言编写的源程式,源程式在输入计算机时,通过“翻译程式”翻译成机器语言形式的目标程式,计算机才能识别和执行。这种“翻译”通常有两种方式,即编译方式和解释方式。编译方式是:事先编好一个称为编译程式的机器语言程式,作为系统软体存放在计算机内,当用户由高级语言编写的源程式输入计算机后,编译程式便把源程式整个地翻译成用机器语言表示的与之等价的目标程式,然后计算机再执行该目标程式,以完成源程式要处理的运算并取得结果。解释方式是:源程式进入计算机时,解释程式边扫描边解释作逐句输入逐句翻译,计算机一句句执行,并不产生目标程式。PASCAL、 FORTRAN、COBOL等高级语言执行编译方式;BASIC语言则以执行解释方式为主;而PASCAL、C语言是能书写编译程式的高级程式设计语言。每一种高级(程式设计)语言,都有自己人为规定的专用符号、英文单词、语法规则和语句结构(书写格式)。高级语言与自然语言(英语)更接近,而与硬体功能相分离(彻底脱离了具体的指令系统),便于广大用户掌握和使用。高级语言的通用性强,兼容性好,便于移植。
彙编语言
常见的彙编语言见下表:
彙编语言 | OS/Plantform | 开放原始码 | 许可证 | x86-64/指令集 |
A86/A386 | Windows, DOS | 否 | 专有软体 | 否 |
DevelSoftware Assembler | Windows, Linux, Unix-like | 否 | 免费软体 | 是 |
FASM | Windows, DOS, Linux, Unix-like | 是 | BSD许可证 | 是 |
GAS | Unix-like, Windows, DOS | 是 | GNU通用公共许可证 | 是 |
GoAsm | Windows | 否 | 免费软体 | 是 |
HLA | Windows, Linux, FreeBSD, Mac OS X | 是 | 公有领域 | ? |
JWASM | Windows, DOS | 是 | Sybase 开放公共许可证 Watcom | 否 |
LZASM | Windows, DOS | 否 | 免费软体 | ? |
NASM | Windows, Linux, Mac OS X, DOS, OS/2 | 是 | BSD许可证 | 是 |
POASM | Windows, Windows Mobile | 否 | 免费软体 | 是 |
TCCASM | Unix-like, Windows | 是 | LGPL | ? |
Yasm | Windows, DOS, Linux, Mac OS X, Unix-like | 是 | BSD | 是 |
MASM | Windows, DOS | 否 | 专有软体 | 是 |
WASM | Windows, DOS, OS/2 | 是 | Sybase Open Watcom Public License | 否 |
TASM | Windows, DOS | 否 | 专有软体 | 否 |
PASMO | Numerous | 否 | GPL | Zilog Z80 |
MRS | ZX Spectrum, PMD-85 | 否 | GPL | Zilog Z80,8080 |
MACRO-11 | PDP-11 | 否 | ** unknown ** | PDP-11 |
MAC/65 | Atari 8-bit family | 否 | Proprietary | MOS Technology 6502 |
Lisa | Apple II series | 否 | Proprietary | MOS Technology 6502 |
ID3E | SC123 emulator | 否 | Free for academic use | SC123 |
HLASM | z/Architecture | 否 | Proprietary | z/Architecture |
GPASM | many | 否 | GPL | Microchip PIC |
COMPASS | CDC mainframe | 否 | Proprietary | CDC mainframe |
Babbage | GEC 4000 series | 否 | Proprietary | GEC 4000 series |
Atari Assembler Editor | Atari 8-bit family | 否 | Proprietary | MOS Technology 6502 |
ASM-One | Amiga | 是 | Open source | Motorola 680x0 |
高级语言
一级 | 二级 | 三级 | |
高级语言 | Basic类 | 有行号 | BAISC、BASICA、GVBASIC、GW-BASIC、ETBASIC |
无行号 | QBASIC、Quick Basic、Turbo Basic、True Basic、Visual Basic、Visual Basic .Net、Power Basic、Small Basic、Free Basic、 DarkBASIC、VBScript、Visual Basic For Applications(VBA)、REALbasic | ||
C类 | C语言、C++、Turbo C++、Borland C++、C++ Builder - C++/CLI、Objective-C、C#、Microsoft Visual C++ | ||
Pascal/Delph类 | Pascal、Delphi、Turbo Pascal、Object Pascal、Free Pascal、Lazarus | ||
科学与统计计算 | FORTRAN、MATLAB、Scilab、GNU Octave、R语言、S-Plus、Mathematica、Maple、Julia | ||
资料库程式语言 | xBase(Clipper、Visual FoxPro)、SQL(PL/SQL、T-SQL、SQL/PSM)、LINQ、Xquery | ||
脚本语言 | 基本 | Lua、Perl、PHP、Python、Ruby、ASP、JSP、Tcl/Tk、VBScript、AppleScript、AAuto(基于Lua) | |
ECMAScript衍生语言 | ActionScript、DMDScript、ECMAScript、JavaScript、JScript、TypeScript | ||
Shell语言 | sh、bash、sed、awk、PowerShell、csh、tcsh、ksh、zsh | ||
标记语言 | XML(SVG、XML Schema、XSLT、XHTML、MathML、XAML、SSML)、SGML、HTML、Curl SVG) XML Schema · XSLT · XHTML · MathML · XAML · SSML | ||
Java虚拟机上的语言 | Java、Jython、JRuby、JScheme、Groovy、Kawa、Scala、Clojure、Kotlin | ||
其他语言 | ALGOL、APL/J、Ada、Falcon、Forth、Io、MUMPS、PL/I、PostScript、REXX、SAC、Self、Simula、易语言、Swift、IronPython、IronRuby、COBOL |
下面介绍几种较有代表性的高级程式设计语言:
⑴BASIC语言
BASIC语言全称是Beginner’s all Purpose Symbolic Instruction Code,意为“初学者通用符号指令代码“。1964年由美国达尔摩斯学院的基米尼和科茨完成设计并提出了BASIC语言的第一个版本,经过不断丰富和发展,现已成为一种功能全面的中小型计算机语言。BASIC易学、易懂、易记、易用,是初学者的入门语言,也可以作为学习其他高级语言的基础。BASIC有解释方式和编译方式两种翻译程式。
BASIC语言

⑵PASCAL语言
PASCAL是一种结构程式设计语言,由瑞士苏黎世联邦工业大学的沃斯(N.Wirth)教授研製,于1971年正式发表。是从ALGOL60衍生的,但功能更强且容易使用。如今,作为一个能高效率实现的实用语言和一个极好的教学工具,PASCAL语言在高校计算机软体教学中一直处于主导地位。Pascal(B.Pascal)是十七世纪法国着名数学家,他于1642年曾发明现代台式计算机的雏型机—加减法计算机。
PASCAL语言

PASCAL具有大量的控制结构,充分反映了结构化程式设计的思想和要求,直观易懂,使用灵活,既可用于科学计算,又能用来编写系统软体,套用範围日益广泛。
⑶通用程式语言C
C语言是美国AT&T(电报与电话)公司为了实现UNIX系统的设计思想而发展起来的语言工具。C语言的主要特色是兼顾了高级语言和彙编语言的特点,简洁、丰富、可移植。相当于其他高级语言子程式的函式是C语言的补充,每一个函式解决一个大问题中的小任务,函式使程式模组化。C语言提供了结构式编程所需要的各种现代化的控制结构。
C语言

C语言是一种通用程式语言,正被越来越多的计算机用户所推崇。使用C语言编写程式,既感觉到使用高级语言的自然,也体会到利用计算机硬体指令的直接,而程式设计师却无需捲入彙编语言的繁琐。
⑷COBOL语言
COBOL的全称是Common Business Oriented Language,意即:通用商业语言。
COBOL语言

在企业管理中,数值计算并不複杂,但数据处理信息量却很大。为专门解决经企管理问题,于1959年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年美国数据系统语言协会公布。经不断修改、丰富完善和标準化,已发展为多种版本。
COBOL语言使用了300多个英语保留字,大量採用普通英语辞彙和句型,COBOL程式通俗易懂,素有“英语语言”之称。
COBOL语言语法规则严格。用COBOL语言编写的任一源程式,都要依次按标识部、环境部、数据部和过程部四部分书写,COBOL程式结构的“部” 内包含“节”,“节”内包含“段”,段内包含语句,语句由字或字元串组成,整个源程式象一棵由根到乾,由乾到枝,由枝到叶的树,习惯上称之为树型结构。
如今COBOL语言主要套用于情报检索、商业数据处理等管理领域。
常用的高级程式设计语言,除了上述的几种之外,还有很多,如以英国着名诗人拜伦(G.N.G.Byron)的独生女艾达·拜伦(Ada Byron)的名字命名的军用语言Ada,深受中、小学生欢迎的语言LOGO等等。
计算机语言开发工具
如今,程式设计语言及编程环境正向面向对象语言及可视化编程环境方向发展,出现了许多第四代语言及其开发工具。如:微软公司(Microsoft)开发的Visual系列(VC++、VB、FoxPro)编程工具及Power Builder等,如今已经在国内外得到了广泛的套用。
语言汇总
工业程式语言:A+ | Ada | 彙编语言| B |Brainfuck| C | C++ |C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython | Java | JRuby | Jython | LISP | Oberon |Objective-C|Ocaml| Pascal | Perl | Powerbuilder | Python | QBASIC | R | REXX | Ruby | Self | Smalltalk | SQL | Tcl/Tk | Visual Basic | PHP | C# | F# | J# |Visual Basic .NET|易语言
脚本程式语言:ActionScript | JavaScript | JScript |Nuva| PostScript | VBScript | lua
学术程式语言:APL/J | Haskell | Logo | ML |pascal|Prolog | Scheme | SAC
其他程式语言:ALGOL | BASIC| Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula
语言发展
计算机主要是由两大部分构成的,硬体和软体,硬体就不用解释了,你的主机、显示器等等都属于硬体,但是光有硬体电脑是没有办法使用的,除非你拿机箱当柜子用!呵呵!所以就必须有软体支持!软体又分为系统软体,也就是你经常用的作业系统,WIN XP,Win 2000等等!再就是通用软体和套用软体。计算机语言也有一个发展过程,从最开始的计算机语言,也就是011010111,那个时候编程恐怕是非常痛苦的事,因为你要会用0和1表示一切!后来逐步发展,把一些常用的指令用英语单词表示出来,形成了彙编语言,这个时候也是比较痛苦的,你要记住那些单词的含义不说,还必须告诉计算机每一步要怎幺做,而计算机又是一个非常笨的东西,你掉一个步骤他就罢工!而且彙编语言的可移植性差,也就是说你在这台电脑上写的程式到另一台电脑上可能就不能用了。之后为了方便软体移植,高级语言诞生了,高级语言不要求程式设计师掌握计算机的硬体运行,只要写好上层代码,编译软体会将高级语言翻译成彙编语言,然后再将彙编语言转化成计算机语言,从而在计算机中执行。因此,程式设计师使用高级语言写得代码可以移植到其他计算机执行,而不用考虑计算机硬体的特性。
语言使用方向
想设计一款美观的Web套用
JavaScript可使网站看起来更棒,同时存在大量可兼容的框架,如Ember、Angular、Backbone等,它们都可以帮你组织、构造兼容不同浏览器的Web套用。目前,JavaScript正逐步成为主要的企业级程式语言。
JavaScript可在几乎所有的浏览器上运行,可同时用来编写前端与后端服务。无论你开发什幺套用,JavaScript是必须的语言,而你也不用考虑套用採用的是何种后端技术。
需要快速开发原型
如果你是设计师,想学习后端编程技术以测试套用,那Ruby和Python将是不错的选择。这两门语言已入选2013年最流行工作技巧Top 5。
学习Python,可以利用Learn Python The Hard Way网站上的资源,学习Ruby,可以登入Codecademy中的Ruby子栏目。
想构建一个Android套用
开发Android套用,最多使用Java语言。
你可以在Windows和Mac上开发Android套用,之后购买廉价的设备来测试你的套用。随着Andriod正逐渐占领移动市场,越来越多的开发者正选择从Android开始入手。
Udacity上免费的JavaScript编程课程很适合初学者。一旦你掌握到Java,就可以登录官方Android开发者网站,学习如何创建第一个Android项目。
想开发一款iOS套用
在Mac上,你可以使用Objective-C开发可运行于iPhone、iPad、iPod上的iOS套用。与Android相比,iOS的碎片化程式更低,开发者很容易创建通用的套用。
除了Object-C,开发iOS套用还需要免费工具Xcode和iOS软体开发工具包。你可以用Apple提供的开发者教程,或登录到Code School网站中的iOS子频道学习iOS开发。