class ModExpression : Expression {
pattern {
option leftRecursive;
a:Expression "%" b:Expression
}
method Get() {
a = this.a.Get...();
b = this.a.Get...();
return a - (b * (a / b));
}
}
特に、既存の言語のすべての構造をカタディンで記述することができます。 その結果、この言語のインタープリターを取得します。 したがって、FortranとPythonはすでに実装されています。
Katahdinを使用すると、1つのプログラムで複数の言語のコードを簡単に組み合わせることができます。 さらに、異なる言語を動的に処理するためのモジュールをロードできます。 すぐにそのような機会の実用的なアプリケーションを思いつくことはできませんが、それらを探求する価値は間違いありません。 以下に例を示します。
import "fortran.kat"; import "python.kat"; fortran { サブルーチンランダム(シード、RANDX) INTEGER SEED 実数 シード= 2045 *シード+ 1 シード=シード-(シード/ 1048576)* 1048576 RANDX = REAL(シード+ 1)/1048577.0 戻る 終了 } python { シード= 128 randx = 0 範囲(5)のnの場合: RANDOM(シード、randx) 印刷するrandx }
一般的に、この言語は非常に興味深いものですが、実際にどのように適用できるかはまだ明確ではありません。 残念ながら、プロジェクトは現在開発されていません。唯一のアクティブな開発者はプロジェクトの作業を継続できません。
参照資料
UPDウィキペディアの記事が削除されました。 それは残念です。
UPD2記事は別の名前で返されました。 リンクが修正されました。