我正在研究编译器中的一个学期长项目,这个项目也可能演变成我的毕业论文。我在这个领域没有太多的经验(我为帕斯卡写了一个小的“翻译”,作为我本科工作的一部分) - 我更多的是机器学习和AI。我们的想法是将此作为一项挑战,并在此过程中学习一些东西。
我确实看过:Interesting compiler projects,但大多数想法似乎已经过时了。
LLVM Open Projects页面--- http://llvm.org/OpenProjects.html
也是如此由于我将有一个学期的工作,我的目标是略显重要的事情。我想广泛地进行优化或并行化。什么可能是一件有趣的事情?
答案 0 :(得分:1)
随意为Felix做出贡献,有无限数量的合适的迷你项目与您感兴趣的任何内容相关:) Felix是用Ocaml编写的,因此您必须使用它。解析器确实将Scheme用于操作代码。如果你进入运行时支持,Felix会生成C ++。可能的子项目包括:
这些问题的难度范围很大,从容易到你想要的那么难。产品的知识水平从需要理解整个事物到只是一些简单的数据结构。
基本信息:Felix是ML系列中一种静态类型的过程脚本语言,运行速度比C快。它生成C ++,然后传递给C ++编译器以生成机器二进制文件。它使用资源管理器来查找所有资源并链接它们,因此它与Python一样易于使用。它嵌入了C和C ++,因此可以使用大多数C / C ++库。它是一个完整的程序分析器,专注于高级优化,并允许您的C ++编译器执行低级别的优化。高级优化包括非常高级别的语义规则,例如指定两次反转列表是无操作,或者实现并行分配以最小化尾递归的成本,但是函数和变量的内联是性能的主要来源。选择语义以允许积极优化,例如,默认参数传递模式允许进行预测或惰性评估,无论编译器认为哪个更快。
在用户dot sourceforge dot net上与skaller联系。