• 编程语言


    解析

    • 所有机器都有一张操作命令清单,你可以控制它,好比电水壶的开和关,这种操作命令的总和就是计算机的机器语言(machine language)
    • 机器语言中加法命令可能是11001101,汇编语言把它改成了add,它们只能让计算机做简单的事。一个操作所需要的代码越多,越难免出现bug,也越南发现它们
    • 高级语言,简便了编程。高级语言还有一个优点,它使得程序具有可移植性,面对不同计算机的机器语言并非完全相同,重写编译器,可使得高级语言程序通用
    • 编译器,本身就是一个程序,将简便方式书写的程序转变成硬件可以理解的语言。
    • 解释器,实时地将代码解释为响应的机器语言,然后一行行运行。编译器,通常是将整个程序全部翻译成机器语言,然后在运行。
    • 编译器处理的语言代码叫源码,翻译之后产生的机器代码叫目标代码。顾客购买的软件往往是目标代码,难懂,相当于加密。
    • C语言是一种低层次语言,接近硬件,堪称可移植的汇编语言。低层次语言效率更高,大多数OS使用C编写的,由于硬件越来越快,使用低层次语言的需求正在减少。
    • 静态类型语言和动态类型语言,变量类型是否必须明确,哪个好,值得讨论。
    • 现在好像每隔一段时间就能听到一种新出现的语言,这是编程语言的战争也是编程语言的文艺复兴,并不矛盾,文艺复兴时期就是存在很多战争的。很多历史学家认为战争是文艺复兴的副产品。当时,欧洲活力旺盛可能就是因为它分成许多互相竞争的小国,它们互相毗邻,所以思想可以传递,但是它们又相互独立,使得独裁无法遏制创新的发展。中国古代,显然是独裁,遏制发展。
      我们应该庆幸,活在一个编程语言的文艺复兴时代.

    编译型语言

    C、C++,编译器->本地机器代码

    解释型语言

    javaScript/shell/python,通过解释器执行

    java通过JVM执行,有点兼顾,或者叫虚拟机语言吧

    区别(python/java)

    python java java(JIT)
    python解释器 java编译器 java编译器
    - JVM JVM
    - 解释器 -
    C C++ -
    C编译器 C++编译器 JIT编译器

    -----------汇编语言-------------
    ------------汇编器--------------
    -----------机器语言-------------
    -------------硬件--------------

    JIT:just in time compiler,即时编译,JIT试运行时环境的一部分,它把解释型语言的可执行文件程序集转换到原生可执行代码.


    java源码级编译器:

    源代码
    词法分析器
    Token流
    语法分析器
    语法树(抽象)
    语义分析器
    注解抽象语法树
    字节码生成器
    JVM字节码(class文件)

    JVM Execution Engine:

    JVM字节码(class文件)
    JIT编译器 字节码解释器

    JIT编译器

    机器无关优化
    中间代码
    机器相关优化
    中间代码
    寄存器分配器
    中间代码
    目标代码生成器
    目标代码



    I am a slow walker, but I never walk backwards.



  • 相关阅读:
    通过actionlib控制jaco机械臂
    actionlib学习
    配置 jaco机械臂 ros环境
    ubuntu14.04标题栏显示上下网速
    linux下alsa架构音频驱动播放wav格式文件
    ros语音交互(五)移植科大讯飞语音识别到ros
    ubuntu14.04 wifi驱动
    Ubuntu14.04使用apt-fast来加快apt-get下载的教程
    ROS语音交互(四)接入图灵语义理解
    相比传统游戏,区块链游戏的价值在哪里?
  • 原文地址:https://www.cnblogs.com/lknny/p/4857144.html
Copyright © 2020-2023  润新知