ウィキペディアによると:
拡張可能プログラミングは、プログラミング言語、コンパイラ、およびランタイム環境を拡張するメカニズムに焦点を当てたコンピュータプログラミングのスタイルを説明するためにコンピュータサイエンスで使用される用語です。
たとえば、Tclを使用すると、独自の制御構造を作成できます。ここを参照してください。
実際のコードで使用されている拡張可能なプログラミング言語のリストをコンパイルすることに興味があります。あなたの言語の例も提供できればいいのにと思います。
ウィキペディアによると:
拡張可能プログラミングは、プログラミング言語、コンパイラ、およびランタイム環境を拡張するメカニズムに焦点を当てたコンピュータプログラミングのスタイルを説明するためにコンピュータサイエンスで使用される用語です。
たとえば、Tclを使用すると、独自の制御構造を作成できます。ここを参照してください。
実際のコードで使用されている拡張可能なプログラミング言語のリストをコンパイルすることに興味があります。あなたの言語の例も提供できればいいのにと思います。
LISP ファミリーの言語 (Common Lisp、Guile など) は非常に拡張性が高く、これまで使用したどの言語よりも優れています。強化された C マクロ システムのようなものと考えてください。十分に退屈している場合は、+ 演算子を減算として再定義できます。これが拡張性です。
LISP は多くの場所で時代遅れになりましたが、Guile (Scheme の方言) はGNU Projectの公式拡張言語です。
Rubyは厳密には拡張可能な言語ではありませんが、構文は柔軟で強力なので、目を細めてみると、まるでそのように見えます...多くの目的で十分です。
とにかく、人々は実際にRubyを使用しています:-)
Scala も厳密には拡張可能ではありませんが、演算子のように見えるものを定義できます。たとえば、マップを定義するときは、次を使用できます。
val romanNumeral = Map(
1 -> "I", 2 -> "II", 3 -> "III"
)
-> は実際にはオブジェクト 1 で呼び出されるメソッドですが、演算子のように見えます。
Jeeboxは、コードを含むあらゆるものを記述できる拡張可能な言語です。
現在、純粋に物事を説明するために使用されています...
しかし、拡張可能なプログラミング言語は、非常に簡単に Jeebox の上に構築できます。
(私が Jeebox の上に通常の拡張不可能なプログラミング言語を構築しているのは、プログラミング言語に拡張性を構築することは単なる言語機能以上のものだからです。より多くのコードを作成できるコードを記述するには、一種の再帰が必要です。これを適切に行うには、私が利用できるよりも多くの時間が必要になります. しかし、私が使用している言語、Jeebox がこれをサポートできることを知ってうれしいです.