有趣的编译器项目

4
我正在考虑一个编译器的学期项目,这个项目也可能成为我的研究生论文。我在这个领域没有太多经验(我在本科阶段写了一个小型的Pascal“翻译器”),我更喜欢机器学习和人工智能。我的想法是把它作为一种挑战,并在此过程中学到一些东西。
我看过有趣的编译器项目,但大部分想法似乎已经过时了。
LLVM开源项目页面也是如此---http://llvm.org/OpenProjects.html 由于我将有一个学期的时间来完成它,我打算做一些稍微有意义的事情。我希望广泛地研究优化或并行化。有什么有趣的事情可以研究呢?

1
如果你不喜欢你链接到的页面上列出的东西,我不禁认为你有点挑剔。我认为它们似乎是很好的建议。或者也许你有一些未被这些建议涵盖的一般领域? - svenningsson
1个回答

1

欢迎为Felix做出贡献,与你感兴趣的任何事情相关的合适微型项目数量是无限的 :) Felix使用Ocaml编写,因此您将必须使用它。解析器使用Scheme用于操作代码。如果您喜欢运行时支持,则Felix生成C ++。可能的子项目包括:

  1. 元类型和多参数行为
  2. 改进定理证明(Felix从断言生成Why格式文件)
  3. 扩展优化范围
  4. 添加新的优化
  5. 支持生成OMP指令
  6. 改进垃圾回收器

这些问题的难度范围从简单到想要多难有多难。对产品的了解程度从需要理解整个内容到只需要一些简单的数据结构。

基本信息:Felix是一种静态类型的程序化脚本语言,属于ML家族,运行速度比C更快。它生成C++代码,然后传递给您的C++编译器生成机器二进制文件。它使用资源管理器查找所有资源并链接它们,因此使用起来像Python一样容易。它嵌入了C和C++,因此大多数C/C++库都可以使用。它是一个整体程序分析器,专注于高层次优化,并允许您的C++编译器执行低级别的优化。高层次优化包括非常高级的语义规则,例如指定两次反转列表是无操作,或实现并行赋值以最小化尾递归成本,然而函数和变量的内联是性能的主要来源。语义学的选择允许激进的优化,例如默认参数传递模式允许急切或惰性求值,以任何编译器认为更快的方式。
请通过skaller@users.sourceforge.net与我联系。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接