Syntax Semantics Meta | ヤマ猫のブログ

ヤマ猫のブログ

瞑想、精神世界、NLP、催眠療法などなどについての雑感。

 

(写真は横浜中華街にある関帝廟、Espace Yamanekoの近場です。)

これは、私の個人的な意見であり、感想なのですが、NLPとは、非常に難しい、高度なテクノロジーであり学問ではないか、と思っております。

 

NLPを理解するには、人間の神経系の仕組みや働き、一般意味論、形式言語や生成文法の知識、コンピュータの構造、プログラムの構造と意味、心理学や催眠療法の知識、退行催眠の知識や経験など、かなり広い範囲のことがある程度分かっている必要があるでしょう。
プログラムの構造と意味が分かっていると、NLPのストラテジーかなりよく見えてきます。
たとえば、「変数iが10になるまで、iを1ずつ増加させていく」は、C言語やJava言語では次のように書くことができます。

 

for(i = 0; i < 10 ; ++i);


この行は、プログラムを人に分かりやすく表現した高級言語で書かれています。


コンピュータで実行するためには、これをコンピュータが理解できる機械語に翻訳します。(機械語は16進数の並びです。この16進数の並びをを人間に読める形で表現した言語をアセンブリ言語と言います。)

上のC言語の一行は、アセンブリ言語で表現すると、たぶん、こんな感じでしょう。(68000系のアセンブリ言語のつもりですが、私も20年近く、アセンブラはいじってないので、すっかり忘れてしまいました。)

 

CLR D0
CMP_AGAIN:
CMP #10,D0
BZ #OUT_LOOP //ループから抜ける
ADD #1,D0
BR #CMP_AGAIN //もう一度比較する
OUT_LOOP:


これは、次のような意味です。(プログラムには、字面の表現があるのと同時に、意味もあるのです。)

 

1)D0レジスタを0クリアする。
2)CMP_AGAIN:はラベルです。「CMP #10,D0」の先頭番地になります。
3)D0の内容が、10ですか?とたずねます。
4)もしも、一致したならばOUT_LOOPの番地にジャンプする。
5)D0レジスタに1を加算する。
6)CMP_AGAIN番地に無条件でジャンプする。

 

この1)から6)までが、コンピュータにとっての上のアセンブリ言語で表現された記述の意味であり、C言語で書かれた「for(i = 0; i < 10 ; ++i);」という記述の意味であり、人間の言葉で「変数iが10になるまで、iを1ずつ増加させていく」という記述の意味でもあります。


記述(ないし表現)に関して、
アセンブリ言語の表現 < C言語の表現 < 人間の言葉(自然言語)の表現
という3つの階層がありました。

 

(アセンブリ言語の下にもう一つ、コンピュータが実際に実行する16進数で表現された機械語もあります。しかし、アセンブリ言語のプログラムと機械語のプログラムとは同型なので、ここでは同じものと見なしましょう。『同型』という言葉も本当は説明する必要がありますが、これは、いずれまた。)

 

ここで、注目してほしいのは、階層の存在です。


A)まず、記述の字面には、見て分かるほどの、明白な違いがあります。
B)そして、人間の言葉の表現はわかりやすく、C言語の表現は少し「なんだろうな?」と思われ、最後にアセンブリ言語になると、何のことかサッパリわからない、という難読さの違いがあります。

 

「メタ」とは、「何々についての」と言った意味です。また、「上位の」とか、「高い論理タイプの」という意味でもあります。「メタ」を使うとこのような言い方ができるでしょう。

アセンブリ言語の表現はわかりにくいので、同じ表現についてもっとわかりやすく表現するために、C言語による表現を与えた。
この場合、C言語はアセンブリ言語に対してのメタ言語と言うことができます。
同じように、C言語の表現を、C言語を知らない人にもわかりやすく説明するために、それについての自然言語での表現を与えた。
つまり、自然言語はC言語に対してのメタ言語なのです。

 

(続きはこちらで)
http://eyamaneko.jp/wp/technic/nlp/210