三种程序设计语言概要

引言

毕竟西邮编程气氛浓厚,加上大神学长学姐的支持和学弟学妹对编程的兴趣,上一篇简书文章《浅谈C语言历史》的分享效果还可以,自己在校内建立的编程讨论群短短几天就有了两百多的成员,并开始以内部推荐的形式邀请新成员一同加入学习编程的氛围。好的分享内容才能引发持续交流,这一期,我们来简单了解下三种程序设计语言 -- 机器语言、汇编语言和高级语言的区别与联系,做好充足的准备迎接编程成长之路。

语言只是工具,不要过早的去想着如何编写代码。
要让自己的第一个 “Hello World” 敲得振振有力。

第一台通用计算机 -- ENIAC

由于第二次世界大战的需要,历经4年的科研与实践,世界上第一台通用计算机、第二台电子计算机 ENIAC(Electronic Numerical Integrator And Calculator)于 1946 年 2 月 14 日在美国宾夕法尼亚大学宣告诞生,标志着计算机时代的到来。

世界上第一台通用计算机 ENIAC

ENIAC 是基于真空管技术研发的第一代计算机,无操作系统,采用机器指令或汇编语言编程,下图便是编程语言的层次结构,具体概念将一一道来。

编程语言的层次结构

机器语言

机器语言(机器码)是用二进制代码(只包含“0”和“1”的代码)表示的、计算机能直接识别和执行的一种机器指令的集合。最早的计算机直接靠机器语言运行,输入方法是靠打孔带(一个条带上面有实心空心的小点,对应1和0)。后来出现了磁带,但指令输入的本质没有改变。
通俗来讲,那时需要靠科研人员给计算机一段对应 0 和 1 的打孔带,计算机才能执行相应的操作并返回预期的结果。

用机器语言与计算机沟通

这些包含 “0”、“1” 的二进制机器码具有灵活、直接执行和速度快的特点,可以根据计算机设计者的实际需要直接操作计算机的硬件结构。但由于机器语言与硬件构造密切相关,每个计算机的硬件也不尽相同,因此不同型号的计算机其机器语言是不相通的,按照一种计算机的机器指令编制的程序,不能在另一种计算机上执行。

一个机器语言源码示例

二进制的机器语言也是有规则的,每一串相应的01映射着一条特定的指令。

机器语言的简要实例

计算机发展至今,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不用再去学习机器语言了。

汇编语言

汇编语言(符号语言)是将二进制的机器码通过助记符的方式让人可以更方便地编写并检查的低级语言。汇编语言接近机器语言,可以看做是机器语言的另一种形式,计算机在运行时也需要将汇编语言变为机器语言的二进制形式才可运行,这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。

一个汇编语言源码示例

汇编语言的特点:

  1. 面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
  2. 保持了机器语言的优点,具有直接和简捷的特点。
  3. 可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。
  4. 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
  5. 经常与高级语言配合使用,应用十分广泛。

汇编语言在编程发展史中承前启后,它第一次摆脱了机器语言的束缚,进入到以接近人类语言为发展目标的时代。

高级语言

高级语言是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序,但机器是无法直接执行的,需要最终编译链接成二进制的机器代码才可被计算机直接执行。

高级语言并不特指某一种具体编程语言,而是包括很多编程语言在内。如目前流行的 JAVA 、 C 、 C++ 、 C# 、 Pascal 、 Python 、 PHP 、VC 语言等等,这些语言的语法、命令格式不尽相同。

一个简单的高级语言程序 -- C语言

因此将程序设计语言从机器语言抽象到高级语言,带来的主要好处是:

  • 高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作;
  • 高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;
  • 高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;
  • 由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。

编译型语言和解释型语言

高级语言又分编译型语言(C、C++等)和解释型语言(JAVA、JavaScript、PHP等),虽然最终都需要编译成机器语言才能被计算机识别和执行但是——

  • 编译型语言需要将源码一并地转换成机器语言的程序之后再执行,针对不同计算机结构编译后的机器语言无法跨平台运行;
  • 解释型语言是在运行的时候将程序先编译成字节码(可以理解为一个中间语言),再在运行的时候由运载解释型语言的环境将字节码翻译成机器语言。但这个过程中可以依靠运载环境根据不同的计算机硬件结构生成相应的机器语言,从而具有跨平台的特性。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容