7

よく書かれたコードを読むことは、言語の学習に役立つようです。(少なくともCでは機能しました。)[質問の「指定されすぎた」部分を削除]

私は特に、問題に特化したミニ言語または DSL を作成するのに適した言語としての Lisp の評判に関心があります。もちろん、このプログラムはオープンソースで、できればウェブ上で利用できるようにする必要があります。

私はグーグルでこの例を見つけました:

http://lispm.dyndns.org/news?ID=NEWS-2005-07-08-1

他に持ってる人いる?(そして、はい、「Practical Common Lisp」を読み続けます。)

11 時間後 (たった 11 時間!): 皆さん、ありがとうございました。なんと素晴らしいサイトで、何と多くの優れた回答とヒントがあることでしょう。

4

7 に答える 7

6

リンクを見つけるのが面倒ですが、「Google」/「Bing」で検索できるはずです。次のリストでは、言語を埋め込む非常に異なる方法と、非常に異なる埋め込み言語について説明します。

  • 反復のための ITERATE
  • 'defsystem's のシステム/モジュール/ファイルの説明。例として ASDF があります。
  • 中置読み取りマクロ
  • ユーザー インターフェイスを指定するための CLIM の define-application-frame
  • LispWorks と CLSQL に埋め込まれた Lisp 化された SQL クエリ
  • LispWorks の Knowledgeworks: ルール、クエリ、... を備えた論理言語
  • Allegro CL に組み込まれた Prolog
  • さまざまな形式で埋め込まれた HTML
  • XMLisp、XML と Lisp を統合
  • 非決定論的プログラミングのためのスクリーマー
  • PWGL、作曲のためのビジュアルプログラミング

単純な組み込み言語と、Prolog、Screamer、CORBA などのまったく新しいパラダイムを提供する非常に複雑な言語があることに注意してください。

于 2009-06-26T23:12:09.687 に答える
5

まだ読んでいない場合は、Practical Common Lispという本がオンラインで無料で入手でき、いくつかのサンプル プロジェクトが含まれています。

于 2009-06-25T03:50:58.840 に答える
4

LOOPマクロは、CommonLispに組み込まれたDSLのほぼ完璧な例です。しかし、それはすでに標準の一部であるため、あなたが求めているものではないかもしれません。

于 2009-06-26T13:14:21.480 に答える
4

CLフォーマット機能にはミニdslがあります。

http://cybertiggyr.com/fmt/

文字列を印刷するためのDSLはマシンコードにコンパイルされると思います。

(format nil "〜{〜A〜#[〜:;、〜]〜}" lst))

于 2009-06-26T13:23:44.880 に答える
2

CLSQL は、SQL クエリに Lisp 表記法を提供します。これは SQL にコンパイルされ、ほぼすべての Lisp HTML および XML 生成ライブラリが適合します。Metabang bindは、変数を字句的にバインドするための DSL です。あなたはおそらくそれが必要であることを知らなかったでしょうが、驚くほど便利であることが判明しました.

于 2009-06-26T23:34:29.643 に答える