文件名称:oberon-compiler:一个由Oberon编写的Oberon-07编译器,带有一个引导Oberon到C的编译器
文件大小:112KB
文件格式:ZIP
更新时间:2024-04-22 17:13:11
C
简单的Oberon编译器 这是Oberon-07编程语言的简单编译器。 在当前状态下,它将Oberon转换为C,因此从技术上讲,它是一个编译器。 最终目标是使编译器为某些(可能是虚拟的)计算机发出代码。 该存储库中实际上有两个编译器。 第一个是用c\_bootstrap编写的自举式编译器(在c\_bootstrap目录中)。它是主动维护的(如果存在错误),但是大多数用于编译用Oberon编写的主编译器。 该编译器是自托管的(可以自行编译)。 用法 运行make将先构建引导编译器,然后构建主编译器,该编译器将放置在build目录中。 创建之后,该编译器可用于编译基于oberon的编译器。 然后,oberon编译器自己进行编译,因此可以通过“三重测试”的形式比较生成的C代码,以确保编译器仍在生成正确的代码。 一旦启动, build目录将包含一个名为compile的shell脚本。 此She
【文件预览】:
oberon-compiler-main
----ProjectOberon()
--------Oberon.ob(281B)
--------Texts.ob(2KB)
--------SYSTEM.ob(325B)
--------Files.ob(1KB)
----COPYING(34KB)
----doc()
--------syntax.txt(3KB)
--------language-extensions.txt(2KB)
--------Oberon.g4(4KB)
----README.md(2KB)
----Makefile(865B)
----tests()
--------LangExtensionsTests.ob(2KB)
--------output.OopTest(374B)
--------OopTest.ob(3KB)
--------output.TypeExt(196B)
--------Recurse2.ob(572B)
--------ShortCircuit.ob(512B)
--------output.Maze(1KB)
--------output.FieldTest(792B)
--------Maze.ob(3KB)
--------output.CondTest(2KB)
--------output.Recurse(162B)
--------output.ShortCircuit(9B)
--------CondTest.ob(459B)
--------FibFact.ob(1KB)
--------M6502.Mod(27KB)
--------FieldTest.ob(331B)
--------Recurse.ob(503B)
--------Test6502.Mod(3KB)
--------output.Shadow(21B)
--------Shadow.ob(343B)
--------output.Recurse2(185B)
--------output.FibFact(11B)
--------TypeExt.ob(2KB)
----.gitignore(7B)
----compiler()
--------Args.ob(161B)
--------AST.ob(32KB)
--------Parse.ob(26KB)
--------perr.py(403B)
--------CCodegen.ob(26KB)
--------Lex.ob(24KB)
--------Compiler.ob(3KB)
--------RCodegen.ob(21KB)
--------Out.ob(977B)
--------fmt.sh(1KB)
--------compile(747B)
--------Decls.ob(18KB)
--------RCompiler.ob(971B)
--------DumpDecl.ob(8KB)
--------runtime.c(4KB)
----c_bootstrap()
--------resolve.c(42KB)
--------ast.c(21KB)
--------lex.c(20KB)
--------buf.c(3KB)
--------builtin.defs(1KB)
--------c_codegen.c(29KB)
--------Base1.ob(118B)
--------Base3.ob(83B)
--------Test.ob(748B)
--------parse.c(23KB)
--------Base2.ob(80B)
--------type.c(9KB)
--------main.c(535B)