【问题标题】:Interesting Compiler Projects有趣的编译器项目
【发布时间】:2010-10-21 21:37:27
【问题描述】:

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

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

LLVM Open Projects 页面也是如此 --- http://llvm.org/OpenProjects.html

由于我将有一个学期的时间来研究它,所以我的目标是做一些有意义的事情。我想广泛研究优化或并行化。有什么有趣的事情可以做?

【问题讨论】:

  • 如果您不喜欢链接到的页面上列出的内容,我不禁认为您有点挑剔。我认为它们似乎是很好的建议。或者,也许您确实有一些这些建议未涵盖的一般领域?

标签: compiler-construction compiler-theory


【解决方案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++ 编译器执行低级优化。高级优化包括非常高级的语义规则,例如指定反转列表两次是无操作,或实现并行分配以最小化尾递归的成本,但是函数和变量的内联是性能的主要来源。选择语义以允许积极优化,例如默认参数传递模式允许急切或延迟评估,无论编译器认为哪个更快。

在用户 dot sourceforge dot net 的 skaller 上与我联系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多