2008-06-11
■ [lisp][lab] S式ベースC言語「SC」がリリースされたようです
僕がいた研究室の先輩のプロジェクト、「SC」がリリースされたようです。
SCは、一言で言うと「S式でC言語を書くためのシステム」です。
言語処理系の研究では、JavaやC言語などの既存の言語に並列処理やGCなどのいろいろな機能を付け加えたりします。 ここで問題になるのが、「JavaやC言語の文法をいじるのは大変」ということです。例えばJavaに「このキーワードでくくった区間は並列に動作します」みたいな 文法を追加しようと思ったら、yaccとか使って頑張らないといけません。
そこでS式です。
S式はLisp系言語で使われるフォーマットで、プログラミング言語のような木構造を扱うのに特に適しています。 俺言語からC言語への変換は大変ですが、俺言語をS式ベースにしておけば、そこからSC言語に変換するのは (S式を別のS式に変換するだけなので) Lispを使って簡単にできると。 一旦SC言語に落としてしまえば、そこからC言語のコードを生成することができるので、gccとか使っていろんなプラットフォームで実験できて嬉しいと。
図で書くと
【SCがないとき】 俺言語 → C言語 (yaccとかで がんばる) 【SCがあるとき】 S式で書かれた俺言語 → S式で書かれたC言語 → C言語 (Lispプログラムで (SCが勝手に 木を変換する) やってくれる)
という感じです。
処理系の研究以外の使用方法としては、実習でC言語をやらされるのが嫌なときに、SCで書いてC言語に変換して提しゅ…いやTAが困るのでやめてください(笑)。