Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


编程语言简史

编程语言简史

好吧,看起来程序员这行一开始并不好混啊。

不同的计算机工作的方式各不相同,不过相同的一点是它们都只认二进制代码。也就是说,0和1的序列。计算机采用这种方式是因为这和电子开关非常契合,关就是0,开就是1。计算机其实还挺笨的。

刚开始的时候,要想在计算机上编程你得能够理解它的语言。也就是说,你得用0和1来和它交流。很明显对人类而言这绝对是噩梦,计算机科学家花费了许多工夫来将它抽象得更简单一些,以方便大家来编写程序。

下面简略地介绍了一下一些语言的来龙去脉。

机器代码

机器代码或者说机器语言就是计算机的CPU能直接执行的一系列指令。

每条指令都会执行一个特定的底层的任务。CPU所直接运行的程序就是由一系列这种指令所组成的。

数值型机器代码(不是汇编代码)可以看作是编译及汇编后的计算机程序的最底层的一种表示形式,也可以看作是一门原始的硬件相关的编程语言。

直接使用数值机器代码来编程程序当然也是可以的,不过你得一个个比特来维护并且要手动来计算数字地址和常量,这太枯燥了,并且非常容易出错。现在已经没人这么干了,除非是需要进行极端优化或者调试的时候。

参考:http://en.wikipedia.org/wiki/Machinecode#Machinecode_instructions

汇编语言

汇编语言并不是机器代码,不过也差不多。它直接关系到底层的架构,因此也就是没有任何抽象。

可以通过汇编程序来将汇编语言翻译成机器代码。汇编程序是第一个发明出来的软件工具。

下面是一段代码:

MOV AL, 1h ; Load AL with immediate value 1
MOV CL, 2h ; Load CL with immediate value 2
MOV DL, 3h ; Load DL with immediate value 3

汇编程序早在50年代就已经出现了,因为它们并不需要太多的代码分析:大多数时候它们只是把指令翻译成对应的可执行的指令就好了。程序员需要像底层的机器或者架构一样来进行思考。

一些资源有限的电子设备仍然在使用汇编语言,由汇编语言的程序去加载高级语言以及相关的库(比如说,硬件固件)。

70年代和80年代间汇编语言非常流行。比如说,几乎所有的控制台游戏都使用汇编语言,因为可用的内存少到仅有几KB。最早的1984的Macintosh机上许多代码都是用汇编语言写的,因为这样比较节省资源。

Fortran

它出现的时候,人们已经对高级编程语言(就是比汇编语言抽象程序更高的语言)进行了大量的研究了。

Fortran最早是在50年代由IBM所发明的。

这个时候,发明特定的编程语言是为了解决特定领域的问题的:Fortran的发明是用于科学计算的,它很快便成为了这一领域的主流语言,并在随后的50年间取得了大量的成就。

到目前为止,在高性能计算领域它还是最流行的编程语言之一,世界上最快的超级计算机的测试及排名的程序就是由它编写的(参见http://en.wikipedia.org/wiki/Fortran)。

Fortran开创了使用星号来进行乘法的惯例,现在几乎所有的语言都仍在沿用这一规。

Fortran程序是这样的:

Program Hello
Print *, "Hello World!"
End Program Hello

下面是一张包含了一个Fortran程序的穿孔卡:

COBOL

COBOL(COmmon Business-Oriented Language, 面向商业的通用语言)的设计目标是用于商业用途。它试图使得编程语言看上去更像是英语,这样编程人员和维护人员都能看得懂。

Grace Hopper 也是它的设计者之一(就是发现了“BUG”的那位女士),她还发明了一门类英语的数据处理语言FLOW-MATIC,要实现一门类英语的通用的业务开发语言,她绝对是不二人选。

下面是COBOL中一个"Hello World!"程序的例子:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.       
DATA DIVISION.
PROCEDURE DIVISION.
MAIN.
    DISPLAY 'Hello, world.'.
    STOP RUN.
  
  

BASIC

BASIC(初学者通用符号指令代码,Beginner’s All-purpose Symbolic Instruction Code)由John G. Kemeny与Thomas E.Kurtz于1964年在新罕布什尔州的达特茅斯学院所发明。

BASIC就是为了分时系统所设计的。它是简化版的Fortran,更容易进行编程。

它提供了一种非常聪明的按行号来编辑程序的方式,不仅编写程序的时候会用到,像GOTO行跳转这样的操作也会用到。

从70年代中期到80年代,微机上通常都安装有不同版本的BASIC,这通常都是随着机器的固件一起发布的,这样小企业,教授,业余爱好者,咨询师等都可以在他们买得起的计算机上定制软件。

BASIC孕育了许多不同的语言,包括Visual BASIC,很长一段时间内它都是世界上最流行的编程语言,它是微软从Microsoft BASIC中改进而来的。

下面是一个简单的BASIC程序(用GW-BASIC写的):

10 INPUT "What is your name: ", U$
20 PRINT "Hello "; U$
30 INPUT "How many stars do you want: ", N
40 S$ = ""
50 FOR I = 1 TO N
60 S$ = S$ + "*"
70 NEXT I
80 PRINT S$
90 INPUT "Do you want more stars? ", A$
100 IF LEN(A$) = 0 THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye "; U$
140 END
查看其它分页:

发表评论


最新评论

我也要发表评论

来自 - 上海 的 Firefox/Windows 用户 2014-12-3 09:58
大赞,谢谢作者分享!
回复
锻炼体身2014 2014-11-11 12:33  新浪微博网友评论
这个朋友够无聊
回复
狗语者 2014-11-11 10:33  新浪微博网友评论
谢谢分享。非常好的文章[握手]
回复
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。