次のプログラミング言語

ある晩、ラザフォードは研究室に入りました。 時間が経ちましたが、研究室では彼の多くの学生の一人が楽器に寄りかかっていました。
「何してるの? ラザフォードに尋ねた。
「私は働いています」と返事が来ました。
「日中は何をしますか?」
「もちろん働いています」と学生は答えました。
「朝早く働きすぎですか?」
「はい、教授、そして私は午前中に働いています」と学生は確認し、有名な科学者の唇からの称賛を頼りにした。
ラザフォードは眉をひそめ、いらいらして尋ねた。
「聞いて、いつ思う?」

私は、プログラミングの開発の最も可能性の高い方向を把握したかったのです。
  1. プログラミング言語の簡単な歴史
  2. 現在のポテンシャル
  3. 前述の結論


プログラミング言語の簡単な歴史。



ほとんどの場合冗長なテキストをおaび申し上げますが、説明のために、プレゼンテーションがより視覚的であるように思えます。

ある程度の範囲で原言語を作成するには、通常の電気スイッチを使用してプログラミングをプルすることができます。 しかし、これは私には多すぎる...

したがって、私自身の心の平和のために、私は最初の言語である機械語を受け入れます
Hello World:
BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 


その後、少なくとも少し読みやすい形式のアセンブラに至りました。
Hello World:
 CODE SEGMENT ASSUME CS:CODE, DS:CODE ORG 100h START: mov ah,9 mov dx,OFFSET Msg int 21h int 20h Msg DB 'Hello World',13,10,'$' CODE ENDS END START 


しかし、アセンブラーは非常にシンプルで読みやすいものでもありません。
そして、彼の後あらゆる種類のFortran、Pascal、Cなどが登場します。
Hello World(パスカル):
 program HelloWorld; begin write('Hello, World!'); end. 


その傾向は明らかだと思います。

現在の潜在的な機会。



音声認識。 例-habrahabr.ru/post/157333

テキストコンパイラ(文学プログラミング)。 例-habrahabr.ru/post/72310

機械翻訳。 例-habrahabr.ru/post/155675

スペルチェック。 例-habrahabr.ru/post/50137

プロセス制御システム。 例-habrahabr.ru/post/139180

もちろん、可能性の重要な部分は示されていませんが、明らかに非常に多くの可能性があります。

前述の結論



プログラミング言語の歴史から、通常の人間の発話への近似は特にはっきりと顕著です。

そして、利用可能な機能には、このような何かを実装するかなり深刻な意欲があります。
完全なコンパイラを除き、必要なものはほぼすべてあります。 同じInform7の基本バージョンがすぐに作成できるという事実までです。

与えられたコンパイラはどうあるべきですか?

私が理解しているように、Cなどのコンパイルの結果として最上位言語のいずれかでプログラムを取得する場合、マシンコードへのさらなるコンパイルは特別な問題を引き起こさないはずです。
むしろ、反対に、クロスプラットフォームはボーナスとして提供されます。

そして、ここでは2つの方法のように見えます:
  1. 人間のスピーチから進むには、そのためのチームを選択します
  2. プログラミング言語から進んで、人間のフレーズを選択します。


人間の音声に基づいて構築するオプションは、確かに興味深いものです。

このようなものは、品詞の定義に本当に役立ちます-habrahabr.ru/post/152799
これはhabrahabr.ru/post/148124です

名詞-変数名または名前の一部
形容詞-変数名または変数名の一部
数字-オプション名または変数名の一部としての定数。プログラマーによる明確化により警告が可能
代名詞-変数名または名前の一部
動詞-コマンド(場合によっては条件が可能です)
連合、副詞、前置詞、助詞、間投詞-それらの名前は軍団であり、それぞれ条件、変数、コマンド、その他のいずれかです。

そして、彼らは明らかに解決策を必要とします:


そして、人がコンピューターで理解することを実現するための問題はなく、言葉を行動に変換するタスクだけですが、このオプションは明らかに複雑です。

コンパイラーコマンドを基に構築するオプションより。

ここでは簡単に思えます。
データベースに使用可能なコマンドセット全体を入力し、各コマンドに1つ以上の音声類似物(同義語)を割り当てます。 データベースにないものはすべて、変数、定数、またはゴミと見なされます。

しかし、この道は完璧にはほど遠い。
コマンドに対応する既存のフレーズセットを記憶し、それらのみをマイクに解釈する必要があります。 したがって、誰もが耐えることができない、発話の致命的な制御。

機能を拡張することは可能ですが、自然言語との統合の方向に。 しかし、機能をそれほど上げることは可能だとは思いません。

そして最後に、 妥協のオプションは、両方の方向に同時に移動することです。

最初と2番目のオプションには両方とも究極の目標があります。これは、スピーチがプログラムになる特定のルールセットです。 人間のフレーズ、単語、およびそれらの同義語の対応表-コマンドまたはコンピューターコマンドのシーケンス。
したがって、両方向の開発により、遅かれ早かれそれらが1つのシステム全体に収束することを認めることは完全に可能です。

微妙な違いがたくさんありますが。 たとえば、このようなものが実際に実装されている場合、音声障害のあるプログラマにとっては困難になります。

国内のプログラマーは、マットに対応する別個のエントリが必要であり、それをプログラムしようとはしません。 そうしないと、誤ってターミネーターを取得することができます...

しかし一方で、私にとっては、電話でプログラムをプログラムし、デバッグし、実行する、通りを歩く、またはカフェで注文を待つ唯一の機会はすでに価値があります。 また、1回の呼び出しで自宅のストーブをリモートでオフにし、タップを閉じ、冬になる前にケトルをオンにして、部屋を28°Cに加熱できることも気に入っています。
早めに仕事から帰ってくる妻がいる人にとっては、これはもはや関係ありません。

「その時のもう一つの迷信もまた知られています:本の男。 特定の六角形の特定の棚(人々が考えた)には、他のすべての本質と要約を含む本があります。司書はそれを読み、神のようになりました。 これらの場所の言語では、遠い時代のこの労働者のカルトの痕跡を見ることができます。 多くの人が彼を見つけるために巡礼をしました。 1世紀にわたって、検索は失敗しました。」
H.L. ボルヘス「バビロニア図書館」

一般に、これには面白いことがあります。たとえば、カセットレコーダーを使用してコードを保存する機能です。 さて、最初にそれをSinclairから切断してから、保存します。 カセットTDKおよびBASF。

Source: https://habr.com/ru/post/J158087/


All Articles