質問

プログラムとメタプログラムの両方が型付けされる、静的型付け言語でメタプログラミングを実行したいと考えています。これは強い意味で次のことを意味します。プログラム ジェネレーターがコンパイルされる場合、型が正しいプログラムのみを生成できるように型システムを十分に強化したいと考えています。

私の知る限りでは、ただ、 メタオカムル これはできます。(いいえ、Template Haskell テンプレートも C++ テンプレートも要件に適合しません -- を参照してください。 この紙)。質問:他にどのような言語/システムでこれが可能ですか?

編集:私の知る限り、metaocamlは死んでいます。オレグ それを復活させようとした, 、しかし、それはまだOCaml自体の背後にいくつかのバージョンが残っています。実験的な言語を使用したい場合 (つまり、metaocamlよりもさらにそうです。 あなたは そしておそらく イドリス 法案に適合します。他にこの分野に新たに参入したものはありますか?

役に立ちましたか?

解決

F#は、コードの見積もりを介してこれを行うこともできます。>

他のヒント

ないことを確保するタイプシステムの基になるlanguge直接賞/分metaprogramそのものです。実際問題として、このほど力をmetaprogrammingき、元の言語...ねんなに昔のことをできるかもしれないこmetaocaml.

ものづくり学校metaprogrammingツールに裏付け言語(C++れは例外を、拒否するので、反射システムとしても弱めの任意の変換).

できるシステムを実施 任意の 変換(metaprograms成セットの)コードの DMSソフトウェア-リエンジニアリングツールキット.DMSはフロントのために多くの実langauges、コンパイラのデータ構造の構文解析時に含むASTs).DMSを提供 source-ソースプログラム変換 この変換を表してAST-書き換え回の表面構文の外国語力を身につけていきます。でお客様の要求をある程度:の場合の変換規則正しい構文上(およびその確認DMS)の変換プログラム構文上正解です。ない現型-正確性を要求してさかのぼって三日目に当たるチェック機構が実施以外の外国語力を身につけていきます。主なタイプの安全チェッカーを増強し、プログラム変革実際に我々がその場で発音を確認することができるコード変換を確実に十分です。

としていてもタイプ-安全な変換を継続してご利用いただけ保証 意味 安全性に関してオリジナルのプログラム。なので、まだまだデバッグのmetaprograms.

Scala でのコンパイル時メタプログラミング。

Our flavor of macros is reminiscent of Lisp macros, adapted to incorporate type safety and rich syntax. Unlike infamous C/C++ preprocessor macros, Scala macros: 1) are written in full-fledged Scala, 2) work with expression trees, not with raw strings, 3) cannot change syntax of Scala.

Shen(Qi Lisp II)は、おそらく次のことができます。 http://groups.google.com/group/qilang/browse_thread/thread/d62fc0d9f576838c

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top