编译技术开发文档
《编译技术》实验开发文档 Author:bush 1 参考编译器介绍 主要参考了教材上PL/0以及tolang 1.1 总体结构 PL/0是一个编译-解释执行程序,总体结构分为两个部分: 先把PL/0编译成目标程序(P-code指令) 再对目标程序进行解释执行,得到运行结果 1.2 接口设计 PL/0编译程序采用一遍扫描,以语法分析为核心,由它调用词法分析程序取单词,在语法分析过程中同时进行语义分析处理,并生成目标指令。 如遇有语法、语义错误,则随时调用出错处理程序,打印出错信息。 1.3 文件组织 前端和后端分包等。 2 编译器总体设计 2.1 总体结构 总体结构与PL/0不同,是编译程序。 先编译成LLVM IR 由LLVM IR生成MIPS汇编代码 直接运行MIPS汇编代码 编译器总体采用多遍扫描,即先通过一次完整的词法分析得到token序列,再进行语法分析得到语法树。 2.2 接口设计 2.2.1 词法分析器Lexer Lexer.java主要提供一个接口getToken() 调用形式:token = lexer.getToken() 作用:根据设置的读取...