Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2010-06-17

(27)マルチパラダイム言語処理系MCによるプログラム開発(1990)

| 21:00 | (27)マルチパラダイム言語処理系MCによるプログラム開発(1990) - わだばLisperになる を含むブックマーク はてなブックマーク - (27)マルチパラダイム言語処理系MCによるプログラム開発(1990) - わだばLisperになる

まったりとCiNiiのLISP関係の論文を漁っておりますが、今回は、

です。

このMCという処理系は、Meta Computing environmentの略だそうで、LISPとPrologを融合した処理系だそうです。

LISPとPrologの融合というと有名なところではTAOがありますが、MCの融合の方針は、手続き的な記述の方が楽に書けるところは、LISPスタイルで記述、宣言的な記述だと上手く書ける場合は、Prologスタイルで書く、というように書き分けつつ共存する、というもののようです。

具体的にどういう風に共存しているかですが、Prolog側は、Uranus(Prolog/KR)のようにS式で記述。

関数の定義は、CLと同じく、DEFUN、Prologの述語の定義は、DEFPREDICATEという風にし、LISPからProlog側を呼ぶには、(?-)、(?ALL)等の?から始まるフォームを利用し、逆にPrologからLISPを呼ぶには、(IS)や、(ARE)を使うとのこと。

また、開発事例として、MC/LISPコンパイラを挙げいて、コンパイラの場合、パターンマッチを活用できるためPrologを主体とし、Prologで処理しにくいところはLISPで記述、という風にお互いを補いつつ効率的に記述できたとのことです。

LISPとPrologが融合した処理系がTAOの他にあったとは意外でした。

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20100617