• 编译原理--概论


    编译器:源程序-->目标程序,离线offline

    解释器:处理程序的一种程序, 输出的是结果,在线online(把结果打印出来了)

    编译原理集中体现了计算机科学的很多核心思想:算法,数据结构,软件工程

    编译器本身就是很重要的研究领域。

    编译器也可以把功能分为前端,后端。前端可以分为词法分析,语法分析。后端指令生成的部分,指令优化的部分。

    汇编代码--->汇编器-->连接器 


    词法分析 主要作用

    • 字符流--词法分析切分为->记号流
    • C语言,字符流所在的集合是ASCII  JAVA的话是UNICODE
    • 记号流:编译器内部定义的数据结构。

    手工实现方式 :纯手工写代码,相对来说比较复杂,容易出错,目前流行的实现方法是GCC 4.0之后  , LLVM  优点:有一个精确的控制

    • 转移图,转移图算法
    • 标识符的转移图,关键字是标识符的一部分。
    • 关键字表,构造关键字构成的哈希表H

    自动生成器方式 : 快速原型、代码量较少  缺点:较难控制细节


    语法分析器

    记号流--语法分析器->抽象语法树--->语义分析器-->中间代码

  • 相关阅读:
    error: reached end of file while parsing
    linux中平均负载 average load
    linux中查看占用cpu和内存最高的进程
    Java基础知识常见面试题汇总
    快速排序
    socket.io的小例子
    js下载cos或者oos资源
    docusaurus简单使用
    mac快速安装git
    python使用win32gui操作窗口
  • 原文地址:https://www.cnblogs.com/zrui513/p/5245626.html
Copyright © 2020-2023  润新知