Complier_c_language_subset

时间:2024-06-19 09:46:35
【文件属性】:

文件名称:Complier_c_language_subset

文件大小:320KB

文件格式:ZIP

更新时间:2024-06-19 09:46:35

Python

C 语言子集的编译器 项目介绍 参考书籍:《编译原理与技术 第二版》 该项目是在 《编译原理》课程学习的实践项目。 因此,会存在很多早前代码没考虑到后续复用, 或者未提供友好接口的情况, 显得过于杂乱。 但是总体还是依据 词法分析 -> 语法分析 -> 类型检查 -> 目标代码生成 的多遍遍历方式 由于时间关系, 并未做代码优化相关功能。 功能实现 词法分析 为词法 构造状态机 实现由文法自动构建状态机的方法 优化一些莫名其妙的的操作和bug(毕设做完后会修改 语法分析 输入:token 序列 输出:分析树(多叉树), 其中非终结符处于非叶节点 实现分析树的Ascii打印 构建LR/SLR分析表 设计文法 实现LR语法分析程序 图形化界面的输出 优化文法集合的设计(目前有些冗余) 优化各个类的实现(目前有些杂乱) 类型检查 声明类型, 表达式类型, 语句类型


【文件预览】:
Complier_c_language_subset-main
----WordParser()
--------StateMachine.py(2KB)
--------Plain.md(965B)
--------__init__.py(0B)
--------.profile(0B)
--------target()
--------config.py(1KB)
--------word_parser.py(1KB)
--------__pycache__()
--------.vscode()
--------实验一_20174214_徐海.docx(148KB)
--------tools.py(3KB)
--------source()
----__init__.py(0B)
----SemanticParser()
--------__init__.py(0B)
--------semantic_function.py(25KB)
--------test_result.txt(3KB)
--------README.md(780B)
--------__pycache__()
--------type_define.py(1KB)
--------top_sort.py(943B)
--------symbol_table.py(5KB)
----README.md(2KB)
----out()
--------table.out(110KB)
--------token.out(5KB)
--------tree.out(218KB)
----__pycache__()
--------StateMachine.cpython-37.pyc(2KB)
--------tools.cpython-37.pyc(3KB)
--------config.cpython-37.pyc(673B)
----submit.sh(40B)
----CodeGeneration()
--------__init__.py(0B)
--------README.py(25B)
--------__pycache__()
--------intermediate_code_gen.py(23KB)
--------nasm_model.py(1012B)
--------tree_addr_presentation.py(517B)
----main.py(1KB)
----SentenceParser()
--------slr.pkl(466KB)
--------analyze_table_model.py(10KB)
--------lr_analyze_driver_model.py(4KB)
--------grammar_tree_model.py(6KB)
--------__init__.py(0B)
--------gramma_model.py.backend(5KB)
--------c_grammar.txt(2KB)
--------README.md(3KB)
--------token_stack_model.py(727B)
--------__pycache__()
--------production_model.py(3KB)
--------gramma_model.py(3KB)
--------expression_model.py(5KB)
--------.vscode()
--------production_set_model.py(6KB)

网友评论