zoukankan      html  css  js  c++  java
  • 作业-编译原理概述

    1.从功能上看,一个编译程序就是一个语言翻译程序,翻译程序把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价程序。汇编程序是一个翻译程序,它把汇编语言程序翻译成机器语言。把源语言像是Java或C这种高级语言翻译成汇编语言或机器语言这种低级语言,则把这种翻译程序称作编译程序。

    2.编译过程包括以下几个阶段及其主要功能:

    1)词法分析:对构成源程序的字符流进行扫描和分解,从而识别出一个个单词符号。

    2)语法分析:在词法分析的基础上将单词序列分解成各类语法短语,这种语法短语也称为语法单位,可表示成语法树。

    3)词义分析:审查源程序有没有语义错误,为代码生成阶段收集信息类型。

    4)中间代码生成:将源程序变成一种容易生成的内部表现形式,让它容易翻译成目标代码。

    5)代码优化:对前一阶段产生的中间代码进行交换或改造,使生成的代码更为高效节省时间和空间。

    6)目标代码生成:把中间代码转化成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

    3.编译程序是一种语言处理程序,它把一个高级语言程序编译成某个机器的汇编语言或二进制代码程序,这个二进制代码程序在机器上运行以生成结果,所以编译程序包括编译和运行两个部分;而解释程序则不需要在运行前先把源程序翻译成目标代码也可以实现在某台机器上运行程序并生成结果。

    4.方舟编译器:我认为主要是为了针对现在语言众多的局势之下所造成的程序运行开销大,加载速度不一等“语言不通”的问题所提出的一个解决的方案,就像我们不同国家的人们为了解决语言不通的问题就引用统一的国际语言相类似,把编译的语言集中统一起来就能够大大的增加程序运行的速率以及加载的速度,减少开发者所要考虑的因素等等,可以极大的提高开发者开发速度,减少能源的损耗等。它采用的路线我认为是将现在大部分的语言都统一编译到一种语言,也就是说把低级语言汇成统一的一种语言,再把这种语言翻译成机器语言这样机器运行的速度就会大大的提高;若这一项技术彻底成熟的话对于安卓软件的开发来说会大大提高兼容性节约使用的时间,还会减低维护所需要的成本,总而言之会对安卓软件的生态造成大大的提升。

  • 相关阅读:
    【vue】vue +element 搭建项目,vue-cli 如何打包上线
    【移动端】单位em相关资料
    管道 |、|&、tee
    重定向
    Bash快捷键
    man 与 help
    linux磁盘分区、格式化、挂载
    目录(cd mkdir rmdir rm pwd ls) 文件(ln touch mv rm cat more head rail) 文件权限(chmod chown chgrp) 文件通配符(* ? [])
    用户环境变量 shell变量 别名
    用户、组和身份认证
  • 原文地址:https://www.cnblogs.com/chenhaowen-shuaishuaide/p/11452042.html
Copyright © 2011-2022 走看看