• 计算机重要概念:代码


    关于代码,需要知道的几个概念

    高级语言代码 High-Level Code

    高级语言代码,自然是指由高级编程语言编写代码,对计算机的细节有更高层次的抽象。
    相对于低级编程语言(low-level programming language)更接近自然语言(人类的语言)。
    集成一系列的自动工具(垃圾回收,内存管理等),会让程序员延长寿命,更快乐的编写出更简洁,更易读的程序代码。

    低级语言代码 Low-Level Code

    低级语言代码,指由低级编程语言编写的代码,相对高级语言,少了更多的抽象概念,更加接近于汇编或者机器指令。
    但是这也意味着代码的可移植性很差。

    在我看来,高与低,只是一组相对词而已。
    越高级的语言,性能、自由度越不及低级语言。
    但是在抽象、可读可写性、可移植性越比低级语言优秀。
    在以前的年代,C/C++语言相对汇编语言,机器指令来说,肯定是高级语言。
    而到了今天,我们更多人对C语言偏向认知为「低级语言」。

    汇编语言 Assembly Language

    汇编语言作为一门低级语言,对应于计算机或者其他可编程的硬件。
    它和计算机的体系结构以及机器指令是强关联的。
    换句话说,就是不同的汇编语言代码对应特定的硬件,所以不用谈可移植性了。
    相对于需要编译和解释的高级语言代码来说,汇编代码只需要翻译成机器码就可以执行了。
    所以汇编语言也往往被称作象征性机器码(symbolic machine code)

    字节码 Byte Code

    字节码严格来说不算是编程语言,而是高级编程语言为了种种需求(可移植性、可传输性、预编译等)而产生的中间码(Intermediate Code)。
    它是由一堆指令集组成的代码,例如在javac编译过后的java源码产生的就是字节码。

    源码在编译的过程中,是需要进行「词法分析 → 语法分析 → 生成目标代码」等过程的,在预编译的过程中,就完成这部分工作,生成字节码。
    然后在后面交由解释器(这里通常指编程语言的虚拟机)解释执行,省去前面预编译的开销。

    是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件。
    字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。

    总结:字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。

    机器码 Machine Code

    机器码是一组可以直接被CPU执行的指令集,
    每一条指令都代表一个特定的任务,或者是加载,或者是跳转,亦或是计算操作等等。
    所有可以直接被CPU执行的程序,都是由这么一系列的指令组成的。
    机器码可是看作是编译过程中,最低级的代码,因外再往下就是交由硬件来执行了。
    当然机器码也是可以被编辑的,但是以人类难以看懂的姿势存在,可读性非常差。

  • 相关阅读:
    js的innerHTML和jquery的html
    CLR_via_C#.3rd 翻译[25.8 使用线程的理由]
    销魂睡姿16式
    CLR_via_C#.3rd 笔记[25.10 前台线程和后台线程]
    NHibernate Reading NotesBasic ConceptⅡ
    CLR_via_C#.3rd 翻译[25.6 CLR线程和windows线程]
    CLR_via_C#.3rd 翻译[25.4 CPU趋势 ]
    NHibernate Reading NotesBasic ConceptⅠ
    JQuery笔记Ⅰ朦胧篇
    NH菜鸟笔记Ⅰ
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/15149357.html
Copyright © 2020-2023  润新知