ラダ語で採用されている基本概念

Ladaシステムの言語はオブジェクトです。 Ladaシステムで動作する言語が順守しなければならないオブジェクトを作成、編集、保存、およびプロトコル交換するためのルールのシステムほどの言語ではありません。 これらのルールは、テキストドキュメント(他の言語)の作成、およびデータの作成、保存、編集に関する一般的なものであり、プログラミング言語にすることもできます。 オブジェクトの必須表現(プロパティ、メソッド、イベント)、関数型プログラミングの要素、オブジェクトの論理表現(ステートメント形式の表現)の手段があります。 オートマトンパラダイムも実装されています。 さらに、オブジェクトを定義するための構文を汎用化する試みが行われました。 そして、ポイントは著者がオリジナルの何かをしたいという欲求ではなく、それどころか、単一の見解につながります。 このために3つの概念が作成されました。 すなわち:



1.オブジェクトの命名規則。

2.オブジェクトをグループ化するためのルール。 オブジェクトの関連付け。

3.オブジェクトのネストの原則。

4.オブジェクトを作成するためのルール。

5.オブジェクト実装ルール(プロパティ値の割り当て、新しいプロパティ、メソッド、イベントの追加)。



OOPにおけるこれらの概念の必要性は、以下に実証されています。詳細な説明は、ドキュメントの関連セクションにあります。

オブジェクトに名前を付ける必要性についての質問はないはずです。 名前を使用して、オブジェクトを識別できます。 オブジェクトの命名規則は、オブジェクトの命名規則と、オブジェクトへのアクセスツールとして名前を使用する規則の2つの部分で構成されます。 通常、オブジェクトの名前はある領域で一意です。 Ladaシステムでは、名前の一意性は必ずしも必要ではありません(セクション1)。

グループの概念は、主にオブジェクトだけでなくオブジェクトのグループも実行するため、Ladaマシンの基本です。 たとえば、Ladaマシンの加算演算(他の場合と同様)では、通常のように2つの演算子は関係しませんが、グループ化ルールに従って実行されるオペランドのグループが関係します。 (セクション2)。

各オブジェクトはネストされたオブジェクトを持つことができます。 加算演算の場合、ネストされたオブジェクトはオペランドです。 フォームにはコントロールが含まれる場合があります。 演算子は、演算子の本体であるネストされた演算子を持つことができます。 Ladaシステムの場合、ネストの原則は主要なものの1つであり、したがって、定義オブジェクトの構文の一部です。



オブジェクトを作成するとき、以下を決定する必要があります。

1.オブジェクトのクラス。 必須です。

2.オブジェクトの名前。 必ずしもそうではありません。

3.プロパティに値を割り当て、新しいプロパティ(クラスで定義されたものとは異なる)、メソッド、およびイベントを追加します。

4.ネストされたオブジェクトを追加します。



オブジェクトのクラスと名前は、次の構文で定義されます。



オブジェクト= "クラス名" "オブジェクト名"



プロパティ、メソッド、およびイベントへの値の割り当ては、オブジェクトの定義の後の括弧内の演算子によって実行されます。 この目的でのブラケットの使用(オブジェクトのグループ化)は実装と呼ばれ、グループ化ルールと実装ルールに従って実行されます。 (セクション3)。



これは、構文を使用してオブジェクトを作成する方法です。 そして、構文によって作成されたオブジェクトが翻訳後に表示されることは非常に明白です。 ただし、オブジェクトを作成するには、ツールバーからオブジェクトをドラッグするか、キーボードから文字を入力します。 文字もオブジェクトです。 つまり ドキュメントの作成と編集では、オブジェクトを扱います。 この方法で作成されたオブジェクトにはグラフィックイメージがあります。そのため、オブジェクトをサインオブジェクトと呼びます。 このようなオブジェクトのプロパティ値の変更は、通常、オブジェクトのプロパティパネルを使用して(または右クリックメニューのコンテキストメニューで「プロパティ」項目を呼び出すことで)クラスの説明に基づいて行われます。 しかし、システムには、値を割り当てたり、ネストされたオブジェクトを追加したり、新しいプロパティ、メソッド、イベントでオブジェクトの機能を拡張したり、ネストされたオブジェクトをオブジェクトに追加する機能があります。 この機能は、サインオブジェクトの実装と呼ばれます。 (セクション3)。

オブジェクトが署名し、ドキュメントのコンテンツであることは明らかです。 この形式のこのドキュメントは保存できます。 ただし、字句解析の段階で作成されるオブジェクトの別のクラスがあります。 これらは値オブジェクトです。 Typeクラスによって生成され、デジタルまたはテキスト表現を持つオブジェクトと呼ぶ値オブジェクト。 たとえば、「21」、「100kg」、「1995年10月1日」などです。 また、作業する言語に語彙がある場合、ドキュメントが入力されるとすぐに字句解析が自動的に行われ、この字句解析は値オブジェクトを作成します。

そのため、オブジェクトを作成する最初の方法は、文字(文字)、トークン、および値を作成することです。 署名オブジェクトは通常、キーボードで入力することで作成されます。 トークンオブジェクトと意味は、字句解析の結果として文字のグループから発生します。 これを例で説明しましょう。 したがって、次のテキスト

I = 30 To N {J +:= 1}の場合

字句解析の結果として、トークン「For」、「I」、「=」、「30」、「To」などに分割されます。 この意味で、「For」、「I」、および「To」は「Word」クラスのトークンオブジェクトです。 そのため、オブジェクト「I」はレターオブジェクトおよびWordクラスのトークンと見なすことができます。 これらのオブジェクト(字句解析の結果として得られる)は、パーサー(およびセマンティック)への入力チェーンとして機能します。 パーサーの作業の結果として、名前がIのForクラスのオブジェクトは、トークンのシーケンスから作成されます。トークンは、実装する必要がある場合があります。 値オブジェクトについて個別に説明しましょう。 この例では、記号「30」の字句解析の結果、クラスIntegerのオブジェクトと値30が作成されますが、これは値オブジェクトです。 Typeクラスによって生成され、デジタルまたはテキスト表現を持つオブジェクトと呼ぶ値オブジェクト。 たとえば、「21」、「100kg」、「1995年10月1日」などです。

そして、解析のルールに従って翻訳中にオブジェクトを作成するための最後のオプション。 たとえば、変換の結果として、この構文Integer I = 30から、値が30でIという名前のクラスIntegerのオブジェクト。

したがって、オブジェクトの階層があります。 まず、オブジェクトに署名し、次にトークンオブジェクト、そして次のレベルは、構文解析中の翻訳の結果として取得されるオブジェクトです。 これらのオブジェクトはすべて静的です。つまり、 ドキュメントの本文にあります。 実装を使用して、プロパティを変更し、オブジェクトに機能的なコンテンツを入力できます。 プロパティの変更と機能の実行はさまざまな段階で実行する必要があり、いくつかのタイプの実装があるという事実のため。 したがって、オブジェクト記号、トークン、および値の実装は、字句解析の段階で発生し、括弧(字句括弧)「 '」「'」によって決定されます。 符号オブジェクトの実装は、スペースなしでその符号の直後に続きます。 トークンと値の実装は、実装されたオブジェクトの後のスペースを介して実行されます。 字句解析中に実行されます。 構文によって作成されたオブジェクトの実装は、グループ化ルールに従います。 中括弧、丸括弧、または角括弧。 プロパティは翻訳の段階で割り当てられ、機能部分は翻訳されたプログラムの起動時に実行されます。 さらに、各オブジェクトには論理的な実装が含まれている場合があります。論理的な実装は、ブラケット(論理ブラケット) "<"および ">"によって実行されます。 そして最後に、名前は括弧「 "」と「」」で実装されます。 名前の実装の意味は、オブジェクトまたはオブジェクトのグループ(たとえば、関数や概念)を名前で呼び出して実行できます(おそらくパラメーターを使用して)が、オブジェクトの実行後、他のアクションが必要になる場合があります。 これは、実装またはメタリアライゼーションと呼ばれる実装の一種です。 セクション3

また、実行時にオブジェクトを動的に作成するための別の4番目のオプションがあります。 動的オブジェクトは、これらの演算子をオブジェクトに適用する方法による実行の結果として、Dim、New、およびVar演算子によって作成されます。



All Articles