zoukankan      html  css  js  c++  java
  • 编译原理 作业一

    编译程序与翻译程序、汇编程序的联系与区别,解释程序与编译程序的区别。  

      翻译程序的含义就是它本身字面含义,就是一个语言翻译机,将我们码出来的高级代码翻译给计算机,计算机能能懂的只有0101,所以翻译程序就是将高级语言程序翻译成计算机语言程序;将翻译程序可以分为两种:1.编译程序,2.解释程序。

    1.编译程序:将高级语言源程序一次性全部翻译成一个可执行程序,每次运行都会生成一个对应的程序,就像我们拿着一篇英语文章,在翻译的时候会留下一个翻译中介,把零散的翻译最后整合成一篇我们能看懂的文字的文章;

    2.解释程序:将高级语言源程序一句一句翻译,并不会生成一个执行文件,简单来说就是对着那个英语文章一句一句理解给自己,中间并不需要留下有你翻译的笔记本;

    汇编程序则是一种将汇编语言源程序翻译成计算机语言源程序,一步到位,自己写出来的源程序直接翻译给计算机。

    编译程序和汇编程序的区别在于,前者是从高级语言过度到计算机语言,后者则是汇编语言过度到计算机语言。

    编译过程包括哪几个主要阶段及每个阶段的主要功能。

    正如上面所说,编译程序就像翻译英语文章一样。大量的翻译导致我们要分阶段进行。

    1.首先要看懂单词,识别出来

    2.理解它的语法结构,知道哪里是头哪里是尾

    3.对语法句子的初步理解,进行初步的翻译

    4.对初步翻译出来的进行优化处理

    5.整合,写成译文

    翻译英语文章的5个过程和我们编译程序的5个过程类似:

    1.词法分析,对构成源程序的字符串进行扫描和分解,识别出一个个的单词

    2.语法分析,在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各段落

    3.词义分析与中间代码生成,对语法分析所识别出的各类语法范畴,分析其含义,并产生中间代码

    4.优化代码,对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为省时间和省空间的目标代码

    5.生成目标代码,把经优化处理之后的代码变换成特定机器上的低级语言代码

    新开源的华为方舟编译器,理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会有什么影响。

      我对方舟编译器的理解并不太深入,从它的技术路线来说肯定是和当初java的产生一样,多元化、跨平台,它的作用是用于将各种语言源程序翻译成一种通用语言源程序,无论在哪个平台上都可以通过方舟编译器来实现编译出一种多平台都是可以使用的代码程序,用于统一手机的各种系统中不同的语言识别,各种各样的系统是各个公司的核心技术,大家都有自己的优势,但是对于我们使用者来说跨平台的手机在某方面的使用会带来麻烦。那么有没有一种工具可以将平台差异这个问题解决呢,这个是方舟编译器的来由,到了后期的开发,整合和统一语言的编译成为了它的中心。对于安卓软件生态来说,简直是一个引入‘’新物种‘’的机会,过去的apk文件已经成为了一种泛滥常见的文件,多平台的语言编译,不仅可以让这些apk文件‘’‘走出去’,还可以将新类型的软件‘’带进了’‘。这个无疑是给安卓软件生态增多物种,形成新的生物链,从而使这个生态更加牢固。

     

  • 相关阅读:
    array and ram
    char as int
    pointer of 2d array and address
    Install SAP HANA EXPRESS on Google Cloud Platform
    Ubuntu remount hard drive
    Compile OpenSSL with Visual Studio 2019
    Install Jupyter notebook and tensorflow on Ubuntu 18.04
    Build OpenCV text(OCR) module on windows with Visual Studio 2019
    Reinstall VirtualBox 6.0 on Ubuntu 18.04
    Pitfall in std::vector<cv::Mat>
  • 原文地址:https://www.cnblogs.com/zzkai/p/11452055.html
Copyright © 2011-2022 走看看