当前位置 博文首页 > 文章内容

    2、编程语言介绍及分类

    作者: 栏目:未分类 时间:2020-10-18 18:01:37

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    目录

    一、编程语言的介绍... 1

    二、编程语言的分类... 1

    1、机器语言:... 1

    2、汇编语言:... 2

    3、高级语言:... 4

    (1)、编译型... 4

    (2)、解释型:... 5

    (4)、混合型语言... 5

    5、总结:... 6


     

     

     

    编程语言的介绍

    一、编程语言的介绍

    编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 [1] 

    编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语言发展变化一样的缓慢而又持久,其发展是相当快速的,这主要是计算机硬件互联网IT业的发展促进了编程语言的发展。

    二、编程语言的分类

    1、机器语言:

    是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言,而计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程,这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言,此处的低级指的是底层、贴近计算机硬件(贴近代指需要详细了解计算机硬件细节、直接控制硬件)

    #机器语言

        用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件。

     

        用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,不便阅读和书写,还容易出错,且依赖于具体的计算机硬件型号,局限性很大。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

     

        机器语言是被微处理器理解和使用的,存在有多至100000种机器语言的指令,下述是一些简单示例

     

        #指令部份的示例

        0000 代表 加载(LOAD)

        0001 代表 存储(STORE)

        ...

     

        #暂存器部份的示例

        0000 代表暂存器 A

        0001 代表暂存器 B

        ...

     

        #存储器部份的示例

        000000000000 代表地址为 0 的存储器

        000000000001 代表地址为 1 的存储器

        000000010000 代表地址为 16 的存储器

        100000000000 代表地址为 2^11 的存储器

     

        #集成示例

        0000,0000,000000010000 代表 LOAD A, 16

        0000,0001,000000000001 代表 LOAD B, 1

        0001,0001,000000010000 代表 STORE B, 16

        0001,0001,000000000001 代表 STORE B, 1[1]

     

    2、汇编语言:

    汇编语言仅仅是用一个英文标签代表一组二进制指令,毫无疑问,比起机器语言,汇编语言是一种进步,但汇编语言的本质仍然是直接操作硬件,因此汇编语言仍是比较低级/底层的语言、贴近计算机硬件

    #汇编语言
    汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
     
    汇编的hello world,打印一句hello world, 需要写十多行,如下
     
    ; hello.asm 
    section .data            ; 数据段声明
            msg db "Hello, world!", 0xA     ; 要输出的字符串
            len equ $ - msg                 ; 字串长度
            section .text            ; 代码段声明
            global _start            ; 指定入口函数
            _start:                  ; 在屏幕上显示一个字符串
            mov edx, len     ; 参数三:字符串长度
            mov ecx, msg     ; 参数二:要显示的字符串
            mov ebx, 1       ; 参数一:文件描述符(stdout) 
            mov eax, 4       ; 系统调用号(sys_write) 
            int 0x80         ; 调用内核功能
                             ; 退出程序
            mov ebx, 0       ; 参数一:退出代码
            mov eax, 1       ; 系统调用号(sys_exit) 
            int 0x80         ; 调用内核功能
     

     

     

     

     

     

     

    3、高级语言:

           高级语言是用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道的,此处的高级指的是高层、开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言。按照翻译的方式的不同,

    高级语言又分为两种:

    (1)、编译型

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

    # 1、执行效率高

    编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(即机器语言),

    因此其目标程序可以脱离其语言环境独立执行,使用比较方便,执行效率较高。

     

    # 2、开发效率低:

    应用程序一旦需要修改,必须先修改源代码,然后重新编译、生成新的目标文件才能执行,

    而在只有目标文件而没有源代码,修改会很不方便。所以开发效率低于解释型

     

    # 3、跨平台性差

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

     

    # 其他

    现在大多数的编程语言都是编译型的。

    编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。

    大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术。

     

     

     

     

     

     

     

    (2)、解释型:

    Tcl、Perl、Ruby、VBScript、JavaScript等都是解释型,类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行,详细如下

    # 1、执行效率低

    解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码。

    这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,

    软件解释器通常会导致执行效率较低。

     

    # 2、开发效率高

    用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的,与编译程序不同的是,

    解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行。

    解释程序的优点是当语句出现语法错误时,可以立即引起程序员的注意,而程序员在程序开发期间就能进行校正。

     

     

    # 3、跨平台性强

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

     

    # 其他

    对于解释型Basic语言,需要一个专门的解释器解释执行Basic程序,每条语句只有在执行时才被翻译,

    这种解释型语言每执行一次就翻译一次,因而效率低下。一般地,动态语言都是解释型的,

    (4)、混合型语言

    Java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,

    然后在Java虚拟机上以解释方式执行字节码。

    三、总结:

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

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

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