テキストを記述するための階層的なセマンティクスと新しいルール。 ごみ...ここでは色が伝わらない...

1.階層的なセマンティクス。



階層的セマンティクスの必要性は原則として明白であり、新しい用語や概念を導入する必要性、または開発中の言語を持ちたいという欲求に関連しているだけではありません。 開発中の言語のより深い特性は、既存の用語と概念を備えた新しい用語で動作する能力です。 メタ言語を作成する機能。 言語のセマンティック分離を回避するのは、このプロパティです。



新しい用語と概念を導入するメカニズムの存在には、まず、これらの用語と概念への名前の割り当て、そして次に、作成された概念を操作するためのこれらの名前の使用が含まれます。 これが通常、一連の文字と記号によって行われると言う場合、何か新しいことを報告することはほとんどありません。 つまり テキスト。

言語を構築するとき、彼らは通常、兆候の欠如について不平を言います。 この問題に言葉の不足を加えることができます。 共通言語の同じ単語は、コンテキストに応じて異なる意味を持つことができます。 たとえば、「椅子」という言葉は、特定の既存の椅子の意味を持っている場合や、存在しないクラスやオブジェクトを示している場合がありますが、そうである必要があります。 そして最後に、最も説得力のあることは、口の中の「蜂蜜」と言わない人が甘くなるということわざに表れています。 つまり 「蜂蜜」という言葉は食べられませんが、蜂蜜はできます。

「言葉の欠如」の問題は簡単かつ美しく解決されますが。 原則として、コンテキストに基づいて、指定された単語の内容を正確に判断することができます。 たとえば、「私は家を出ました...」というフレーズの単語「家」は明らかにオブジェクトです。 そして、このオブジェクトのプロパティ(床、窓、ポーチ、または材料の数)に関する質問は理にかなっていると思います。 ただし、「すべての人が家を建てなければならない...」というフレーズで同じ単語を使用することには、クラスの意味があります。 この場合、フロアの数を明確にすることは意味がありません。

「家は何ですか?」という質問が両方のフレーズの名詞であるという正しい答えを得るのはまったく予想外ではありません。 ここで、単語は、それが意味するという意味ではなく、文の一部として考慮されます。 つまり このフレーズは分析され、「house」という単語がこのフレーズで役割を果たします。

もちろん、「ホーム」という言葉はテキストと考えることができます。 むしろ、文字「d」、「o」、および「m」の組み合わせ。

ここで、それらの命令または操作のオブジェクトを記述および命名すると、実世界から切り離され、個別に存在し始める特定の階層が作成されるという事実に注意を払います。 実際、特定の概念の出現とそれらの命名は、人類の発展の本質です。 したがって、原始人のための「椅子」という言葉の発明は、指でこのオブジェクトを指し示し、「椅子」のトピックに特徴的なムージングをすることから大きく前進しました。 この言葉の発明の時点で、「椅子」というオブジェクトのクラスに共通する特徴的な特性が強調されました。これは素晴らしいメンタルワークであり、簡単に使用でき、気付くことすらありません。 「テーブル」、「ベッド」などの言葉。 そして今、別の洞察。 「家具」という言葉が考案されました(独自の特性を持つ新しいクラスが合成されました)。 このクラスには、「ベッド」と「椅子」、「テーブル」と「キャビネット」が含まれます。 そして、これが独自の特性を備えた新しいクラスであるという事実(常に明示的に定式化されているわけではない)は、「ニコライが家具として会議に出席した」というフレーズから明らかです。 そして、「家具」クラスのどのプロパティが意図されているかは明らかです。

「微分」という言葉の発明は数学の発展に重要な役割を果たしましたが、その定義は何百年もの間「関数の増分と引数の増分の比」として知られていました。 しかし、単語だけが発明されました! そして、彼自身の人生を癒しました。

ここで、物事を指し示すことでコミュニケーションする原始人に戻ることができます。 そのため、オブジェクトを表す単語を「発明」するタスクは、オブジェクトに名前を割り当てて「新しい単語」を形成するだけではありません(このコンテキストでは、オブジェクトの命名は番号付けに似ています)。 新しい単語は、オブジェクトのクラスを示す単語として形成され、その後、ポインター、前置詞、記事を使用して、またはコンテキストから、オブジェクトが指定されます(必要な場合)。 この観点から、英語の不定冠詞はクラス(水)を定義し、インデックスはオブジェクト(水)を定義します。

しかし、これが唯一のポイントではありません。 頻繁に使用される証明方法であるアルファベットの単語の番号付けは、言語作成の最初の(および抽象的な)段階でのみ有効です。 すべてのオブジェクトを列挙(番号付け、名前付き)できると仮定すると、実際の言語ではこれは当てはまりません。 新しい単語の出現(および古い単語の使用)は、以前のレベルのセマンティクスを含む新しいセマンティックコンテンツの出現に関連付けられています。 つまり、表示する代わりに(または表示とともに)椅子として表示できるすべてのオブジェクトは、「Chair」クラスの新しい意味を獲得しました。 結局のところ、このクラスには「スタンプ」、「座ることができる石」、「スツール」などのクラスも含まれています。 次の階層レベルは家具クラスです。 さらに高いのは、「建具」のクラスです。 もちろん、直接ネーミングがあります。 たとえば、一般的に名、ニックネーム、固有名などがありますが、これによって天気が大きくなることはありません。

したがって、クラスの助けを借りて知識を統合すると、「新しい言語」が作成され(古い言語との関連でメタ言語と呼ぶことができます)、「古い言語」の用語について話すことができます。 そしてもちろん、「新しい単語」には番号を付けることができます(いくつかの単語にはいくつかの意味がありますが)、これらだけが新しい言語の単語になります。 そして、この新しい言語では、一貫性と不完全性の問題に直面していないことを願っています。

そのようなアプローチは、ラッセルの論理型の発展と、真理の意味論的概念に関するタルスキーのアイデアの継続と見なすことができます。

言語のフレーズの番号付けの正当性に関する疑いは、さらに2つの理由を引き起こします。 それらの1つは、慣習性と相対性であり、これは少なくともインドヨーロッパ言語のルールの1つです。 したがって、言語のオブジェクト化に関連する概念は、「内部」、「外部」、「左」などの概念を紹介します。 同じフレーズが異なる意味を持ち、一方が真で他方が偽であるという事実につながります。 たとえば、「ナイフは皿の左側にあります」は、皿の前に座っている人にのみ当てはまり、反対に座っている人にはこの声明は誤りです。

同じ状況は、時間の客観化に関連しています。 時間の相対的な表示に関連するすべてのフレーズは、その意味を変えることができます。 そして、これらすべてが一緒になって完全な混乱につながります。カール・ビューラーが「言語の理論」で引用した鮮明な例です。 「悲しい、彼は一晩中そこに座っていた。 彼は今日(その日参照)二つの悲しいニュースを受け取った-彼はローマに行った。 ここ(参照:そこ)彼は2日間住んでいた-そして今彼はすでに戻ってきた。 このフレーズを正しく理解するためには、あなた自身が空間と時間の正しい位置を取り、フレーズの間にそれを変更する必要があります。

2.テキストデザイン。



しかし、分析対象からテキストを分離することは比較的簡単で、次の規則案を順守することにより、テキスト定数、記号、固有名に書き込まれたすべてを分割します。

1.テキスト定数は斜体で黒で書かれています。

2.文字および単語をイタリック体または黒以外のテキスト定数として使用するには、テキスト定数の最初と最後のテキストブラケットで強調表示します。 「」

3.必要に応じて、テキスト定数としてテキストブラケットを使用します。この文字は中括弧で囲まれます。 このルールは、開き括弧と閉じ括弧を使用する場合、完全に冗長です。

4.適切な名前(オブジェクト、クラス、およびタイプ)は大文字で強調表示されます。 オブジェクトのクラスへの所属は、クラスまたはタイプの名前から最初の3つの子音によって区別できます。 クラスとオブジェクトは同じ色ですが、クラスは太字で示されています。 1つの色のタイプと値、タイプは太字で示しています。

5.述語、関数、プロシージャ、およびファンクタの名前は大文字で、イタリック体なしで色(黒)で強調表示されません。

6.ブラケットのない述語、関数、プロシージャ、およびファンクタの名前には、特定の名前を置き換える文字への参照が含まれる場合があります。

7.値は、イタリック体なしで黒の小さな文字で書かれています。

8.キーワードには下線が引かれています。

9.略語には複数の大文字が含まれ、略語を説明するテキストを参照する場合があります。

10.適切な名前と、述語、関数、プロシージャ、およびファンクターの名前を複製して、配列に結合できます。

11.略語。 複数の大文字が含まれています。

12.指定。 大文字、数字、接続線のみを含めることができます。

テキスト定数はスペースと結合されます。



正式な言語では、さらに新しい用語や概念を導入することが許される階層的なセマンティクスを持つ言語では、状況はさらに悲惨です。 ここで私たちは一般的に私たちが欲しいものと私たちが望む方法を言うことができ、言葉が不足しています。 むしろ、文字の任意の組み合わせではなく、意味のある名前にしたいと思います。 そして、ここでは選択肢が豊富ではなく、適切な単語をLength1やLongestLengthなどの他の説明と組み合わせて歪めたり、文字だけでなく意味を区別することを学んだりします。

この問題の古典的な解決策は、名前の意味(したがって、具体的な)意味をさらに定義する概念またはオブジェクトの名前の前(または後)の兆候です。 または、括弧を使用してテキストの意味を明確にします。 さらに、整数の名前など、さまざまな標準が提案されています。これは、文字Iで始まります。または、異なるクラスのオブジェクトの命名に関する推奨規則です。 たとえば、Btnで始まるボタンの名前や、Frmで始まるフォームの名前。 特殊文字でオーバーロードされたプログラムの読み取りと書き込みは簡単ではありません。 トークンを強調表示する方がはるかに簡単です。 実際、これはすでに現代の言語で広く使用されています。 キーワード、識別子、定数などが強調表示されます。 強調表示を追加の利便性ではなく、トークンを決定する手段にするために、少しだけ残っています。

したがって、次と同じ「新規」トークンを定義できます。

新規新規:新規=新規新規

もちろん、ここではやり過ぎですが、非常に現実的です。

提供される色。

新規-オブジェクトを定義するキーワード

新規-タイプ

新規-クラス

新規-テキスト

新規-識別子は、クラスまたはタイプの色を継承します。 この場合、タイプ。

新規-コメントは緑色で強調表示されます。

新規-エラー

1-値

追加-ファンクターを追加

長さプロパティ

グレー-グレーパラメーター



規則5および6は、斜体ではなく黒で記述されているものを、対応する値または文字の組み合わせとしての記号に置き換えることができます。 すなわち:

値「11」には値11があり、述語「More」は記号「>」で置き換えることができます。

原則として、このアプローチはプログラムを編集する際のプログラマーの作業をそれほど複雑にするべきではありません。 すべてのテキストを1つのフォントで記述し、「」記号でコメントを強調表示すると、翻訳者がテキスト自体に色を付けてコメントマークを削除します。 プログラマーの参加が必要になるのは、翻訳者が知覚するトークンの編集が、トークンのちらつきと有効なオプションのヒントによって注意が引き付けられることを明確にする場合です。

同一のトークンを色で強調表示することに加えて、トークンを組み合わせて配列にすることができます。 これは場合によっても見られます。 Fun1、Fun2(識別子は文字のみで構成されているため実行できません)を記述する代わりに、Fun [1]、Fun [2]などを記述できます。



3. Lada言語のプロパティへのアクセス。



クラスプロパティにアクセスするための通常の構成を次に示します。 Obはオブジェクトで、Lengthはプロパティです。



Ob.Length



明らかなビジネス、オブジェクト識別子、および長さは何ですか? これは識別子ですか? いや これは定数ですか? たぶん。 翻訳者の実装方法を確認します。 しかし、実際には、これがプロパティの名前であることは明らかです。 次に、テキスト変数または識別子を使用して、一般的にプロパティを参照しないのはなぜですか? 結局のところ、これは言語の機能を大幅に拡張できます。 はい、ロジックを簡素化します。 答えがあります。 これは、より便利だからです。 ドロップダウンリストからヒントを作成できます。 また、テキスト変数を配置すると、非常に不格好になります。 このように



Ob。「長さ」



しかし、現代のテキストエディタの機能は忘れています。 多くの翻訳者は、トークンを色で強調しています。 私たちの場合も同じことをしないのはなぜですか。 また、3つの方法でプロパティにアクセスでき、一般的な原則とロジックに違反しません。 確かに、同時に、テキストだけでなくトークンを区別する翻訳者が必要です。 持っていると仮定します。 プロパティにアクセスする3つの方法。



1.識別子。 既存の言語では不可能であり、新しい機会をもたらすもの。

Dim NamePropperty:文字列=長さ

わかりました NamePropperty



2.テキスト変数。 それは非常にきれいに見えませんが、受け入れられ、時にはそれが便利になるかもしれません。 イタリック体のテキスト定数があることに注意してください。

Ob.Length



3.プロンプトマスタによって準備完了トークンとしてドロップダウンリストから提供される定数で、同じ識別子とは異なる可能性のある色。 それ自体も新しい機会です。



Ob.Length






All Articles