見出し画像

No. 1 C++で学ぶ最適化ソフトウェア開発: 基本事項とHello World!

※忙しい人はタイトルと太字部分だけ読めば大体OK

早速,C++によるプログラミング学習+開発記録のNo. 1をお送りします!

プログラミングって何すんの?

 プログラミングに触れたこともない人だと,「プログラミングってそもそもなにすんの?」という疑問を持つかもしれません.ということで,プログラミングでやっていることを図にしてみました:

プログラミングの流れ.要はソースコードの書き方を学ぶのがプログラミング学習

コンピュータで動く何かを作るのがプログラミングだと思ってもらえれば良いと思います.そしてプログラムを書くという作業は一般的にソースコードと呼ばれるファイルを書くことだと思ってもらって大丈夫です(たぶん).ソースコードはコンピュータにやって欲しいことを書いた指示書のようなものなのですが,このソースコードを書く時に使うのがC言語やhtml,Pythonと呼ばれるプログラミング言語です.ただ,このソースコードはこのままだとコンピュータが理解できません.コンピュータが理解できるのは機械語と呼ばれるスイッチのON/OFFを決める情報なのです.そこで,C言語などで書かれたソースコードを機械語に翻訳する必要が出てきます.この翻訳作業は言語によってコンパイルと呼ばれたりします.コンパイルを行うとコードが全て機械語に翻訳されたカタマリが出てくるので,コンピュータはそのカタマリを読んで一気に実行できます.なお,コンパイルを行わずに一行ずつ翻訳して実行させるPythonみたいな言語もあります(なので遅い).実はこのコンパイルなどの翻訳部分,通常は何かしらのソフトにお任せします.無料で使えるものもありますし,「うちのコンパイルソフト(コンパイラと言います)で翻訳すると速いでっせ!」と商売している人たちもいます.つまりコンパイルはお任せするわけですね.ということで,プログラミング学習はソースコードの書き方を学ぶことだと最初は思ってもらえば良いと思いますよ!

開発の全体のイメージ

 次に,作成するソフトウェアの開発イメージを説明したいと思います.実際にソースコードを書いていくわけですが,ひとつのファイルに長々と書くのはお勧めできません.生涯にひとつのプログラムだけ作ってはい終わり!ならそれで良いのですが,実際は次に別のものを作ったりするわけです.そんな時に,以前書いたものを使いまわしたくなります.同じものをもう一度書き直すのは面倒でしょ?ということで,ある程度機能ごとにファイルを分けて書くのが普通です.イメージはこんな感じ:

ファイルは分けて書くと後で使い回すことが可能

ひとつのファイルに長々とコードを書くのではなく,機能ごとにまとめて複数のファイルに分けています.今回でいうと,一般的な計算公式(ベクトル演算とか画面に情報を出したりとか)は以前作ったコードを流用し,最適化を行う細々した関数を新たに書いていきます.出来上がるものは同じでも,使い回しの良さが格段によくなるのです.さて,バラバラに書いたファイルのコンパイルには,makefileという各ファイル同士をどう繋げるかの情報を記述したものを使います.こうすることで,使い回しの効く柔軟なコードができそうですね.

やっぱり最初はHello World!

 最初ということで,基本中の基本であるHello World!から始めてみます.Hello Worldというのはプログラミング学習の一番最初に行うお勉強で,自分の書いたプログラムでパソコンの画面にHello World!という文字列を表示する練習になります.ということで,ちょっとやってみました.画像は,ターミナルと呼ばれるmacに最初から入っているソフトの画面です.

コンパイルと実行の様子

なんかごちゃごちゃしてるようにも思うのですが,筆者が操作したのは①と②の2つだけです.①最初の「make」はmakefileを実行する命令です.main.cppなど複数のソースファイルが繋がっていくわけです.makeを打ったらコンパイルが開始され,機械語の実行ファイル「SQP.cgi」が生成されます.この名前は筆者が決めたもので,別に「ソフト.exe」とかでも良いです(本当は日本語の名前は避けるけど).なおこの名前は,makefileの中で指示しています.②その後,実行ファイル名の前に「./」をつけることで作ったファイルを実行しています.Hello world!が画面に出ているのがわかると思います.ちらっと触れましたが,すでに複数のソースファイルが用意されています.今回は紹介しませんが,すでに色々と準備しているわけですね.
 Hello World!と表示するためのコードであるmain.cppの中身を見てみましょうか.

Hello World!を表示するならこれだけ.

画面に文字列を表示するだけなので短いですよね.coutというのは画面に表示を行う命令で,” ”で囲まれた文字列(ここでは"Hello World!")を画面に出力するように指示しているのがなんとなく伝われば幸いです.「<<」で”Hello World!”をcoutに送り込んでいる感じです.

今回のまとめ

 1回目ということで,開発というよりはプログラミングの説明とソフトの全体像のお話になっちゃいました.実際には細々とした関数を準備したり,プログラム全体で用いる共通の変数を用意したりとやっていますが,ややこしくなるので今回の掲載は見送ります.それでは,次回もお楽しみに!

K. HISAKAWA

いいなと思ったら応援しよう!