Compile
  • compiler
    • 编译过程
      • 编译器基本过程
        • 中间代码在汇编代码之前
      • 词法
        • 词法分析器和(语法分析)解析器
      • 语法
      • 语义分析
      • 中间代码
        • Page 1
        • 知识点
          • 码(bytecode/bitcode)
            • bytecode
              • 格式
              • 执行方式
                • JIT和解释执行
              • 选择热路径进行优化
              • 具有完整的运行时支持(如内存管理、异常处理等)
            • bitcode
              • 格式
              • 执行方式
            • 最终的中间代码可能是bytecode或者bitcode
            • bytecode/bitcode在汇编之前
            • 为什么不让bitecode在虚拟机上运行,而bytecode编译优化运行呢?
            • bytecode在JIT编译 vs bitcode编译
            • 区别
          • Page
      • 汇编
      • 机器码
      • 链接
      • 可执行文件
    • 编译工具
      • Clang/GCC
        • __attribute__
          • 可设置的所有内容
            • 分类
          • __attribute__((cleanup))
          • __attribute__((visibility()))
          • Page 2
        • C语言
          • extern "C"
        • gcc中的-ldl
      • Tools
        • 构建系统生成工具 和 构建工具
        • 构建系统生成工具
        • 构建工具
          • ninja
            • ninja 和 cmake合作
          • Ninja 、Make
          • Gradle、Maven 、Ant
    • Page 4
    • 知识点
      • 常量折叠/传播
    • 资源管理策略 —— 移到tech-thinking
      • RAII
        • 非RAII
          • 懒加载
          • 在编程中,难道有对象初始化,没有获取资源的?我们写的代码不都是初始化就获取了资源么?
          • 何为对象初始化,懒加载不是在首次调用的时候才初始化的么?这个不同样是RAII么?
        • 其他
          • 懒加载 vs RAII
  • CompilerCompiler
    • JavaCC
      • 基本内容
      • 一般应用
      • 使用javaCC生成代码
      • Lex 和 JavaCC的关系与区别
Powered by GitBook
On this page
  1. compiler

编译工具

Clang/GCCTools
Previous可执行文件NextClang/GCC