4

私は、卒業生の論文にも発展する可能性のあるコンパイラの学期の長いプロジェクトを見ています。私はこの分野での経験があまりありません(学部の仕事の一環としてPascalの小さな「翻訳者」を書きました)---私は機械学習とAIにもっと興味があります。アイデアは、これを挑戦として取り上げ、その過程で何かを学ぶことです。

私は見てみました:興味深いコンパイラプロジェクトですが、ほとんどのアイデアは時代遅れのようです。

同じことがLLVMOpenProjectsページにも当てはまります--- http://llvm.org/OpenProjects.html

学期がありますので、少し意味のあることを目指しています。最適化、つまり並列化に幅広く取り組みたいと思います。取り組むべき興味深いことは何でしょうか?

4

1 に答える 1

1

気軽にFelixに貢献してください。興味のあるものすべてに関連する適切なミニプロジェクトは無制限にあります:)FelixはOcamlで書かれているので、それを使って作業する必要があります。パーサーはアクションコードにSchemeを使用します。ランタイムサポートを利用している場合、FelixはC++を生成します。可能なサブプロジェクトは次のとおりです。

  1. メタタイピングとポリアディックな振る舞い
  2. 定理証明の改善(Felixはアサーションからファイルをフォーマットする理由を生成します)
  3. 最適化の範囲を拡大する
  4. 新しい最適化の追加
  5. OMPディレクティブの生成のサポート
  6. ガベージコレクターの改善

これらの問題の難易度は、簡単なものから必要なだけ難しいものまでさまざまです。製品の知識のレベルは、全体を理解する必要があることから、いくつかの単純なデータ構造にまで及びます。

基本情報:Felixは、MLファミリの静的に型付けされた手続き型スクリプト言語であり、Cよりも高速に実行されます。C++を生成し、C++コンパイラに渡してマシンバイナリを生成します。リソースマネージャーを使用してすべてのリソースを検索し、それらをリンクするため、Pythonと同じくらい簡単に使用できます。CとC++が組み込まれているため、ほとんどのC /C++ライブラリを使用できます。これは、高レベルの最適化に焦点を当て、C++コンパイラが低レベルの最適化を実行できるようにするプログラムアナライザ全体です。高レベルの最適化には、リストを2回反転することは無操作であることを指定したり、末尾再帰のコストを最小限に抑えるために並列割り当てを実装したりするなど、非常に高レベルのセマンティックルールが含まれますが、関数と変数のインライン化がパフォーマンスの主な原因です。セマンティクスは、積極的な最適化を可能にするように選択されています。

ユーザーdotsourceforgedotnetのskallerで私に連絡してください。

于 2010-12-04T21:40:26.683 に答える