トップ «前の日記(2008-06-09) 最新 次の日記(2008-06-12)» 編集

Route 477



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が困るのでやめてください(笑)。