LLVM Frontend 量子拡張 (Qlang を考える)

@k_yamaz 蛙 は, 量子コンピュータのための量子プログラミング言語や, 量子コンパイラを開発するための
OSSコミュニティ「OpenQL Project」を運営しております.
量子プログラミング言語, 量子コンパイラを開発するための調査, 検討を書いています.
OpenQL は, OpenMP や OpenCL の仕様を参考にして, 仕様を検討しています.

“A Software Methodology for Compiling Quantum Programs arXiv:1604.01401 “ による提案や
QuTechQuEST * , EPiQCによるLLVM ベースで量子拡張を目指した実装 ScaffCC など,
世界の研究機関でも同様の研究がされております.

LLVM Frontend の拡張

LLVM Frontend 量子拡張 (1. Qlang を考える) のエントリで検討しましたが,
状況が少しずつ変化してきました.

以前は, #pragma を定義してプログラムを書くことを想定してC言語の拡張を考えておりました.
このフロントエンドの開発では, 次の2つのアプローチを検討しました.

1) gcc に手を加えて, #pragma を使った実装を行う.
2) LLVM に手を入れて, primitive な型を拡張する.

gcc は構造化が見づらい一方で, LLVM は DSL が作りやすい構造があります.
LLVM を試していく予定です.