zoukankan      html  css  js  c++  java
  • 2.编程语言介绍

    1.机器语言

    计算机的硬件作为一种电路元件,它的输出和输入只能是有电或者没电,也就是所说的高电平和低电平,所以计算机传递的数据是由“0” 和“1”组成的二进制数,所以说二进制的语言是计算机语言的本质。计算机发明之初,人们为了去控制计算机完成自己的任务或者项目,只能去编写“0”、“ 1”这样的二进制数字串去控制电脑,其实就是控制计算机硬件的高低电平或通路开路,这种语言就是机器语言。直观上看,机器语言十分晦涩难懂,其中的含义往往要通过查表或者手册才能理解, 使用的时候非常痛苦,尤其当你需要修改已经完成的程序时,这种看起来无序的机器语言会让你无从下手,也很难找到程序的错误。而且,不同计算机的运行环境不同,指令方式操作方式也不尽相同,所以当你在这种机器语言就有了特定性,只能在特定的计算机上执行,而一旦换了机器就需要重新编程,这极大的降低了程序的使用和推广效率。但由于机器语言具有特定性,完美适配特定型号的计算机,故而运行效率远远高过其他语言。机器语言,也就是第一代编程语言。

    1.1、执行效率最高

    编写的程序可以被计算机无障碍理解、直接运行,执行效率高 。

    1.2、开发效率最低

    复杂,开发效率低

    1.3、跨平台性差

    贴近依赖具体的硬件,跨平台性差

    2.汇编语言

    不难看出机器语言作为一种编程语言, 灵活性较差可阅读性也很差,为了减轻机器语言带给软件工程师的不适应,人们对机器语言进行了升级和改进:用一些容易理解和记忆的字母,单词来代替一个特定的指令。通过这种方法,人们很容易去阅读 已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便,这种语言就是我们所说的汇编语言, 即第二代计算机语言。
    比起机器语言,汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在底层,通常是程序优化或硬件操作的场合。

    2.1、执行效率高

    相对于机器语言,使用英文标签编写程序相对简单,执行效率高,但较之机器语言稍低,

    2.2、开发效率低:

    仍然是直接操作硬件,比起机器语言来说,复杂度稍低,但依旧居高不下,所以开发效率依旧较低

    2.3、跨平台性差

    同样依赖具体的硬件,跨平台性差

    3.高级语言

    在编程语言经历了机器语言,汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。在计算机还很稀缺的50年代,诞生了第一个高级编程语言。当时计算机的造价不菲,但是每天的计算量又有限,如何有效的利用计算机有限的计算能力成为了当时人们面对的问题。同时,因为资源的稀缺, 计算机的运行效率也成为了那个年代工程师追寻的目标。为了更高效的使用计算机,人们设计出了高级编程语言,来满足人们对于高效简洁的编程语言的追求。

    3.1 编译型(如C语言):

    类似谷歌翻译,是把程序所有代码编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件,详细如下

    1)、执行效率高
    编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(即机器语言),
    因此其目标程序可以脱离其语言环境独立执行,使用比较方便,执行效率较高。

    2)、开发效率低:
    应用程序一旦需要修改,必须先修改源代码,然后重新编译、生成新的目标文件才能执行,
    而在只有目标文件而没有源代码,修改会很不方便。所以开发效率低于解释型

    3)、跨平台性差
    编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到不同的平台使用,针对不同的平台必须重新编译,即跨平台性差

    其他
    现在大多数的编程语言都是编译型的。
    编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。
    大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术。
    C、C++、Ada、Pascal都是编译实现的

    3.2 解释型(如python):

    类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行,详细如下

    1)、执行效率低
    解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码。
    这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,
    软件解释器通常会导致执行效率较低。

    2)、开发效率高
    用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的,与编译程序不同的是,
    解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行。
    解释程序的优点是当语句出现语法错误时,可以立即引起程序员的注意,而程序员在程序开发期间就能进行校正。

    3)、跨平台性强
    代码运行是依赖于解释器,不同平台有对应版本的解释器,所以解释型的跨平台性强

    其他
    对于解释型Basic语言,需要一个专门的解释器解释执行Basic程序,每条语句只有在执行时才被翻译,
    这种解释型语言每执行一次就翻译一次,因而效率低下。一般地,动态语言都是解释型的,
    例如:Tcl、Perl、Ruby、VBScript、JavaScript等

    ps:混合型语言

    Java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,
    然后在Java虚拟机上以解释方式执行字节码。

    4 总结

    ​ 综上选择不同编程语言来开发应用程序对比

    1、执行效率:机器语言>汇编语言>高级语言(编译型>解释型)

    2、开发效率:机器语言<汇编语言<高级语言(编译型<解释型)

    3、跨平台性:解释型具有极强的跨平台型

    ​ 由于我们开发是应用程序,而应用程序必须运行于某一个平台之上,应用程序的快慢受限于平台(就好比F1赛车与宝马车同时跑在北京五环高速,都受限于道路环境,车速是差不多的)的快慢,并不是单从语言层面就可以提升整体执行效率的,于是开发效率、跨平台性才是我们需要优先考虑的问题,这就是我们首选python的原因

  • 相关阅读:
    Java工作中常用到的工具
    得到区块链直播记录
    如何高效的解决问题
    pgsql数据库应用两点注意
    flask如何使模板返回大文件,又不消耗大量内存
    python内存诊断
    pycharm整体缩进的快捷键
    gdb生成的core文件位置
    gdb源码安装,指定使用的python版本
    gdb源码安装过程中的问题:no termcap library found
  • 原文地址:https://www.cnblogs.com/yangtao416/p/15017004.html
Copyright © 2011-2022 走看看