概要

2007 年度第II期未踏ソフトウェア創造事業
実装言語独立モジュラリティーの良い
コンパイラキット SCK
開発者: 阿部正佳、山崎淳、山根雅司
•
モジュラリティーの高い部品を提供
– 実装言語 (Emacs Lisp) を知らなくても利用出来る部品群を提供
– モジュール間インタフェースは S-式であり、他言語との連携も容易
•
独立性が高く、応用分野の広いツール群を提供
–
–
–
–
–
•
完全自動エラーリカバリ機構を持つパーサジェネレータ yayacc
最適化モジュール
リターゲッタブルコード生成系
可視化ツール
中間言語実行系
Emacs Lisp で実装されていることの利点
– Lisp であることの良さ
• ラピッドプロトタイピング→コンパイラ研究者向け
– Emacs Lisp であることの良さ
• 柔軟で簡潔なユーザインタフェース→教育的価値
• コンパイラの部品が編集コマンドとして実現されている→開発効率の向上
SCK 構成図
青字:ソース言語依存
赤字:ターゲットマシン依存
yayacc
Parsers
Grammars
Type checking
Parser
C-Source
C-PlainAST
Parser
MinCaml
AST(CPS)
Core-AST
LIR
LIR
Regalloc
LIR
TMD-Compiler
X86.tmd, SPARC, ...
LIR
Optimize
LIR
LIR
Instsel
Restruct
Type inference, etc.
LIR generation
Desugar
AST
AST
LIR
LIR
Asmout
ASM
LIR VM
Effect