文件名称:compiler_minijava:我对Java子集的编译器的实现
文件大小:19KB
文件格式:ZIP
更新时间:2024-06-01 02:16:09
Java
编译器_迷你java 6月更新:终于完成了我的论文,将开始使用Apache Commons BCEL在编译器的后端工作。 我终于决定创建自己的编译器。 自从我第一次学习如何编码以来,这就是我一直想要做的事情,并且会问起最初用来编写要在其中键入代码的程序编写的代码。 我将遵循Aho等人在“编译器:原理,技术和工具”中给出的建议和步骤。 人对Java的一个子集。 我看过其他资料,例如Appel编写的Java中的Modern Compiler Implementation,但感到前者对所有相关概念给出了更详尽的解释。 要保持词法分析器和解析器手写。 首先完成前端,然后再移至后端,当前的中间表示是三地址代码,但我想将其更改为JVM的字节码。 源语言 程序 = 堵塞 堵塞 = {decls stmts} decls = decls | decl | Ë 定义 = 类型id ;
【文件预览】:
compiler_minijava-master
----symbols()
--------Type.java(1KB)
--------Array.java(328B)
--------Env.java(557B)
----test(237B)
----parser()
--------Parser.java(8KB)
----README.md(2KB)
----main()
--------Main.class(546B)
--------Main.java(286B)
----.gitignore(8B)
----inter()
--------Arith.java(566B)
--------And.java(385B)
--------Op.java(316B)
--------SetElem.java(860B)
--------Or.java(360B)
--------Unary.java(484B)
--------Seq.java(490B)
--------Constant.java(618B)
--------Node.java(478B)
--------Temp.java(295B)
--------Break.java(294B)
--------Rel.java(637B)
--------Do.java(512B)
--------Else.java(580B)
--------Id.java(197B)
--------Expr.java(876B)
--------Access.java(541B)
--------While.java(538B)
--------If.java(409B)
--------Stmt.java(219B)
--------Logical.java(957B)
--------Set.java(649B)
--------Not.java(328B)
----lexer()
--------Tag.java(400B)
--------Real.java(227B)
--------Lexer.java(5KB)
--------Keyword.java(1KB)
--------Num.java(218B)
--------Token.java(185B)