| PCASTL | |
|---|---|
| パラダイム | 命令形、反射的 |
| デザイン: | フィリップ・ショケット |
| 開発者 | フィリップ・ショケット |
| 初登場 | 2008 (2008年) |
| 安定版リリース | 3.5 / 2018年3月31日 ( 2018-03-31 ) |
| OS | クロスプラットフォーム |
| ライセンス | GNU劣等一般公衆利用許諾書 |
| Webサイト | www.pcosmos.ca/pcastl/ |
| 影響を受けた | |
| C、R | |
PCAST L (親子アクセス可能な構文木言語の略)は、インタープリタ型の高水準プログラミング言語です。2008年にフィリップ・ショケットによって開発されました。[ 1 ] PCASTLは、自己書き換え型コード の記述を容易にするために設計されています。この言語には、現在記述されているコードの構文木ノードにアクセスするための予約語として、parentとchildsetが用意されています。[ 2 ]
「Hello world プログラム」は非常にシンプルです。
"こんにちは世界!"
または
print("こんにちは、世界!") 同じことをするでしょう。
PCASTLの構文は、プログラミング言語CとRに由来しています。PCAST Lインタープリタで使用される 文法と字句解析器は、 Rバージョン2.5.1のソースコードに基づいて記述されています。
Rと同様に、文はセミコロンで区切ることができますが、必ずしもそうする必要はありません。[ 3 ] R と同様に、変数はセッション中に型を変更できます。CやRと同様に、PCASTLではバランスの取れた括弧({と} )を使用してブロックを構成します。
PCASTLの演算子はCの対応する演算子と同じ優先順位と結合性を持ちます。[ 2 ] [ 4 ] forループはCと同様に定義され、演算子はCと同様に使用され、式で使用される前または後に変数を増分または減分します。 ++--
予約語for と演算子を使用した PCASTL の例: ++
for ( i = 1 ; i < 4 ; i ++ )プリント( i )PCASTL の関数とコメントはRと同様に定義されます。
# 関数定義 (コメント) a = function () { print ( "Hello, world!" ) }# 関数呼び出しa ()これらの予約語は小文字でのみ記述でき、小文字以外では認識されません。親予約語は、その単語が配置されているコードの構文ツリー内の親ノードへの参照を提供します。次のコードでは、親ノードは演算子です。 =
a = 親
変数「a」はノードへの参照を保持します。次のコードは、childset予約語を使用して演算子の2つの子ノードへの参照を取得する方法を示しています。 ==
a.childset[0] a.childset[1]
この例では、「a」の値を表示するにはいくつかの方法が示されています。
1つの a.childset[0].parent a.childset[1].parent a.childset[0].parent.childset[0].parent # など...
次のコードでは、ノードの右の子にコード セグメントを割り当て、ノードをもう一度 =実行して、新しく定義された関数を呼び出します。=
a.childset[1] = `function() print("hello")' 実行(a) ア()