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

语言发展史

一、机器语言: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位数不同的机器运行时,就不会正常运行。

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

编程排行走势

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 5,318评论 2 35
  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,188评论 8 114
  • 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...
    小小不懂11阅读 3,418评论 2 30
  • 原文作者:机器之心 近日,Ramesh Dontha 在 DataConomy 上连发两篇文章,扼要而全面地介绍了...
    正在充电Loading阅读 1,104评论 0 2
  • 夜的黑在悄悄褪去,一层若隐若现的青雾从地表、从四面八方聚拢过来,将这片林子笼罩起来,随着黎明的到来慢慢地由青转白,...
    曼天星阅读 173评论 0 0