我正在研究一个为期一个学期的编译器项目,该项目也可能会演变成我的研究生论文。我在这一领域没有太多经验(作为我的本科生工作,我为Pascal编写了一个小的“翻译器”)---我更喜欢机器学习和AI。想法是将其视为挑战,并在此过程中学习一些东西。

我确实看过:Interesting compiler projects,但是大多数想法似乎已经过时了。

LLVM开放项目页面也是如此--- http://llvm.org/OpenProjects.html

由于我将有一个学期来研究它,因此我的目标是稍微有意义一些。我想广泛地进行优化或并行化。有什么有趣的事情要做?

最佳答案

随时为Felix贡献力量,有不限数量的与您感兴趣的事物有关的合适小型项目:) Felix是用Ocaml编写的,因此您必须使用它。解析器确实将Scheme用于操作代码。如果您需要运行时支持,Felix会生成C++。可能的子项目包括:

  • 元类型和多发性行为
  • 改进定理证明(Felix生成为什么从断言中格式化文件)
  • 扩展优化范围
  • 添加新的优化
  • 支持生成OMP指令
  • 改进的垃圾收集器

  • 这些问题的难度范围从容易到您想要的困难。产品的知识水平从需要了解整个事物到只是一些简单的数据结构。

    基本信息:Felix是ML系列中的静态类型的过程脚本语言,其运行速度比C快。它生成C++,然后将C++传递给您的C++编译器以生成计算机二进制文件。它使用资源管理器查找所有资源并链接它们,因此与Python一样容易使用。它嵌入了C和C++,因此可以使用大多数C / C++库。它是一个完整的程序分析器,专注于高级优化,并允许您的C++编译器执行低级优化。高级优化包括非常高级的语义规则,例如指定两次反转列表是无操作,或者实现并行分配以最大程度地减少尾部递归的开销,但是内联函数和变量是性能的主要来源。选择语义可以进行积极的优化,例如,默认的参数传递模式允许进行急切或懒惰的求值,无论哪种编译器都认为会更快。

    在skaller上通过用户点sourceforge点网与我联系。

    10-06 06:01