記事「リプレイシステムの開発(第28回):エキスパートアドバイザープロジェクト-C_Mouseクラス(II)」についてのディスカッション

 

新しい記事「リプレイシステムの開発(第28回):エキスパートアドバイザープロジェクト-C_Mouseクラス(II)」はパブリッシュされました:

人々が初めてコンピューティングが可能なシステムを作り始めたとき、すべてには、プロジェクトを熟知しているエンジニアの参加が必要でした。コンピュータ技術の黎明期、プログラミング用の端末すらなかった時代の話です。それが発展し、より多くの人々が何かを創造できることに興味を持つようになると、新しいアイデアやプログラミングの方法が現れ、以前のようなコネクタの位置を変えるスタイルに取って変わりました。最初の端末が登場したのはこの時です。

プログラミングの経験が長い人にとっては、以下に示すことはあまり意味がないかもしれません。プログラミングを自然言語に近づけるために、なぜこんな苦労をするのでしょうか。答えは簡単で、マシンのためにプログラミングしているのではなく、他のプログラマーのためにプログラミングしているからです。何かを因数分解することができる最初のシステムが登場した時点では、エンジニアがどれだけプロジェクトを熟知しているかにすべてがかかっていました。これが、プログラミング用の端末がなかったコンピュータ技術の黎明期の現実でした。

それが発展し、より多くの人々が何かを創造できることに興味を持つようになると、新しいアイデアやプログラミングの方法が現れ、以前のようなコネクタの位置を変えるスタイルに取って変わりました。最初の端末が登場したのはこの時です。そのうちに、もともとバイナリ形式だけでおこなわれていたプログラミングは、もはや主流ではなくなりました。プログラムの進化が非常に早く、プログラムされたものをより効率的に読み取る方法を見つける必要性に迫られたからです。その頃、アセンブリ言語が登場しました。この強力なフレームワークは、複雑なバイナリコード作業を、OpCodesまたはニーモニックコードという形で、より読みやすいものに変換しました。プログラムはますます複雑になり、より多くのコードを必要とするようになり、最初の高水準言語が登場しました。

より自然に近い言語が使用できるようになったため、OpCodeを直接扱う必要がなくなりました。当初、これらの言語は主に数学的概念を作成し、記述するために開発されました。つまり、数式をコンピュータで読み取り可能な形式に変換することを容易にするためのものでした。このプロセスは、もはや人が手作業でおこなう必要はありませんでした。これにより、新しい、コンパイラの時代が生まれました。コンパイラは人間の言語を機械が理解できる言語に翻訳します。プログラムがどのように作られるかを説明し、より多くの人に学んでもらい、自分のアイデアをコンピューターが理解できるものに変換してもらおうと、私は何年もこの方法でプログラミングをしてきました。しかし、プログラミングは、作りたいものを表現するために記号を組み合わせたり使ったりすることがほとんどなので、多くの人がいくつかの概念を理解するのが難しいことに気づきました。

ただし、MQL5言語がC/C++に似ていて、読みやすくなるようにコーディングする能力を持っていることを考えれば、何か違うことを実証するのに理想的になります。そして、いろいろなことを分析した結果、コードを完全に理解しなくても、愛好家が何がプログラムされているかを理解する手助けができることに気づきました。そこで、コードの表現方法を変えることにしました。結局のところ、すべてはコンパイラによって理解されるので、コンパイラにとってはどうでもいいことです。しかし、これは愛好家にとっては非常に重要なことです。一見すると奇妙で変わったコードに見えるかもしれませんが、初心者にとってははるかに理解しやすいでしょう。

作者: Daniel Jose