プログラミング日誌

第一日目。

プログラミングへの長い道のりの第一歩目として、『苦しんで覚えるC言語』(http://9cguide.appspot.com/index.html)を参考に、学んだことを記す。

サイト自体が非常にまとまっているので、この日誌内で整理を行うことは主目的ではなく、むしろ読み進めている過程を、いつかプログラミングを行っているであろう筆者が懐かしみながら読むために残すことが目的である。成長するスピードに合わせて記事の長短が決まるのでどのようになるのかが全くの想像がつかないが、では早速。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

2018年2月26日(月)

BGMとして「アルコアンドピースのANN2015年11月19日」を聞いている。

プログラミングを勉強する際に、いくら参考書を読んでも力にならない。血となり肉となるには手による作業が必要である。そこで必要なのがプログラミング言語を打ち込み、それが実際に動く様子を確認しなければならない。そこで便利なのが、「学習用C言語開発環境」である。C言語以外のプログラミング言語では、それ毎の開発環境が必要なのか?

早速インストールし、環境を整えた。
プログラミング言語は、コンピュータを動かすために使われるものである。これなくしては操作できない。それとは反対に、自然言語とは人間が日常で使う言語であり、プログラミングでは適さないといわれる。しかし自然言語は全く適さないのか?一つの単語の曖昧さが補正みたいなのをしたら使えるのではないか?
自然言語とプログラミング言語の違いとして、文法が単純である点が挙げられている。単純であるとは、品詞が少ないことを指す。自然言語には主語、名詞、動詞、助詞、形容詞、、、などなど不足を恐れることは無いが、容易に文章で動作や様子を表現できる。しかしながら、プログラミング言語では動詞と目的語しかなく、それによりすべての動作を規定する。
例えば、三角形を描きたかったら、「座標の点を指定、そこから次の位置まで線を引く、そして規定した長さ分まで延びれば線を引く動作をやめる」これらを繰り返すことで初めて三角形を描画できる。

このように、一つの動作に対してそれをコンピュータ上で表現したければ、プログラミング言語で描けるよう動作を可能な限り分解することが必要である。例えば、ロボットの動作をプログラミングにより規定するとする。お好み焼きを焼くロボットには、焼き加減はわからない。材料をどれだけ混ぜればいいのかわからない。それはすべてプログラミングによって、すべての手順をあまりなく記述することが求められる。生地を鉄板に広げ、一定の時間が経った後に生地の下にこてをいれ、上方向と後ろ方向に力を加える。この力加減も寸分たがわず記述することが求められる。このようにがちがちに規定された動きは、精確なプログラミングにより実現できるものである。このような特性というべきところからロボット、機械と人間の差が生まれるのではないかと思う。ロボットと機械の違いは?機械はあらかじめ決められた動きしかできない。予測して動くというのも、すべては過去のデータを基に導出された乾いた記憶でしかない。しかし人間もそうではないのか?
私が考える差というのは、個々の動作の意味連関をコンピュータ、機械は把握できないことにあると思う。独立した動作を組み合わせた結果うまれたいわば偶然の産物であるのが機械の動作であり、ある種導きだされるべきものとして人間の動作がおけるのではないかと考える。

以上のことから言えることは、精確な言葉で正しい手順でプログラミングが行われることが期待されるという事である。

コンピュータは計算するために存在する。0と1の数字を駆使して、スイッチのオンとオフのようにそれらの複雑な組み合わせが、動作と言われるものを生み出す。直線をひくにも、線を生み出すドットの無限ともいえる配置の末に線が描かれる。

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

mtmtmtmt86

プログラミング日誌

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。