C语言程序设计成为技术大神程序员

人人学点编程001-简单了解编程语言

2017-03-17  本文已影响113人  灬52赫兹灬
语言发展史

一、机器语言:CPU可以直接读取的指令,又称为原生码。

机器语言是唯一计算机可以直接识别与执行的一种语言,是复杂而有规律的二进制指令集合。

什么是二进制?

二进制就是 0  和   1

二进制是世界上第一台计算机用的算法,计算机里有一个个灯泡,当运算的时候,比如要表达“1”,第一个灯泡会亮起来。要表达“2”,则第一个灯泡熄灭,第二个灯泡就会亮起来,用0与1记录灯泡的熄亮。

例1:指令为1011011000000000,它表示让计算机进行一次加法操作 ;  前八位表示操作码,而后八位表示地址码。这种机型可包含256(=28)个不同的指令。

例2:0000000111011000我们解释一下:寄存器AX和BX的内容相加,结果存储于AX

这由两个字节组成:

第一个字节:头6位000000为操作码,表示“相加”的意思;

第7位0表示第二个字节中的头2位及后3位为目的操作数的寻址方式,其余3位为源操作数的寻址方式;

第8位1表示为字运算。

第二个字节:头2位11及后3位000表示操作数位寄存器AX;其余3位011表示另一个操作数为BX

感兴趣的同学,请自行查找资料深入了解。

注意:

机器语言对不同型号的计算机来说一般是不同的,所以又称为面像机器的语言。例如计算机字长为16位,就会有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,计算机执行各种不同的操作。

机器语言的特点:

缺点

1、难记、难学、难理解

2、可读性差

3、开发周期长、效率低、易出错,不易移植,重用性差

4、强专业要求

优点:CPU直接识别,运算速度快,执行效率快,存储占用少

二、汇编语言:助记符表示指令功能的计算机语言,又称为符号语言。

用机器语言开发简单是磨难,为了结束掉这种痛苦,聪明的人类发明了汇编语言。用符号来表达,让人类更加容易理解 ,便于记忆。

汇编的在计算机中的执行:

汇编指令---->  编译器  ---->机器码---> 计算机执行

例如:10与var指示的内存中的一个byte的值相加,并将结果保存在var指示的内存中

add eax, 10— EAX ← EAX + 10

add BYTE PTR [var], 10—

汇编语言也是低级语言,它还是面像机器的语言,依赖于硬件,有多少种CPU就有多少种汇编语言

汇编语言优点

1、保持机器语言的一致性,可以访问所有能够被访问的软、硬件资源。

2、高速度和高效率,内存占用少。

缺点:

1、不同的处理器有不同的汇编语言语法和编译器,编译程序无法在不同的处理器上执行,缺乏可移值性。

2、难以调试,容易产生BUG

3、使用汇编对于CPU必须非常了解,特定CPU特定优化。开发周期长,效率低。

三、高级语言:以人类语言为基础的编程语言。

高级开发语言是有几百种,说一些常用的并为其分为11大类:http://www.csdn.net/article/2012-01-30/311200

高级语言程序不能直接被计算机识别,经过转换才能被执行。

按转换方式可将它们分为两类:解释型和编译型。

编译型的语言包括:C、C++、Delphi、Pascal、Fortran

解释型的语言包括:Java、Basic、javascript

什么是编译型?

编译型语言就是指使用编译器将高级语言编译成对应CPU汇编语言,再由汇编转成机器,生成可执行文件。

编译型语言最典型的就是C/C++生成后缀为exe的文件。

什么是解释型?

在运行时,翻译器将高级语言先翻译成执行的中间代码,再由解释器(例如浏览器、虚拟机)将中间代码解释成机器码并执行(可看做是将编译、运行合二为一了)。

典型的代表语言:JavaScript、Python、Ruby和Perl等。

不太恰当的小故事

经理D,让主管C测试新员工的能力,发给他们一份相同的文档,让他俩翻译成英文,然后交到D的手里。A会英文(编译型),可是不会上网,B不会英文(解释型),会用网页翻译器。A很快就翻译完了,B用翻译器,一句一句的拷贝到翻译器中,句子太长怕出问题。

效率问题:B要google运行一下(中间码),显然A是比B效率快的。

编译型是在运行前(且只编译一次),需要做转换工作,并生成一个可执行的机器码文件,用户每次运行该可执行文件执行即可,效率、执行速度要比解释型的快。

解释型是在运行时做转换工作,并不生成可执行文件,每次运行都要做转换,再执行,效率自然就低了。


当两个人把翻译好的文档交给主管时,C发现A的文档是没有错误的,然后直接交给经理D。B的文档出现了点问题,他又把文档给B讲了一下,让其纠错。

纠错排查:A(编译型)在交文档前排查了语法、错字等,所以直接交到D手里完成任务(生成可执行文件)。

                    B(解释型)因为并不会英文,并不知道问题所在,只有交到C手里才知道发生了错误。(运行时)

编译型语言也被称作强类型语言,所以要生成可执行文件前,即编译阶段进行语法或者链接接等错误的检查。

解释型语言,代码中的错误直到运行阶段才可察觉。


等两人把英文版都交上之后,公司突然有一份文件要翻译成法文,文件要的比较着急,而且是自己内部某位领导看,所以不要求特别严格。A就有些束手无策了,而B又再次发挥了翻译器的能力,成功的完成了任务。

 跨平台:解释型强于编译型

  编译型在编译生成的可执行文件后,到另一台CPU位数不同的机器运行时,就不会正常运行。

  解释型在移值是会根据不同的配置生成当前机器可识别的机器指令集。

编程排行走势

上一篇下一篇

猜你喜欢

热点阅读