概念
アルゴリズムとは、問題を解くための実行手順
コンピュータ:
ハードウェア→記憶装置、演算装置、制御装置、入力装置、出力装置
ソフトウェア→コンピュータを動かすのに必要なプログラミング ex)OS(オペレーティングシステム)
情報量の単位
ビット(0or1で表せるデータ)
バイト(8ビットの集まり)
ワード(数ビットをまとめたもの(16、32、64ビット))
1024バイト(2の10じょう)→1キロバイト
1024バイト→1メガバイト
1024メガバイト→1Gバイト
アドレスとは
プログラムが使用するデータは、一旦メモリに書き込まれる。
その際、データの格納場所に、データの場所を示すアドレスが1バイトごとに割り振られる。
→アドレスを指定することでメモリのどの位置のデータでも自由にアクセスすることができる。
メモリ破壊とは
アドレスの指定を誤り、メモリの内容が意味のない値になること
プログラムが暴走した
プログラム自身メモリ上に格納されている。
プログラムが格納されている領域が破壊され、プログラムがとんでもない動きをしたり、停止できなくなること
プログラミング言語
高級言語、低級言語がある。
機械語(マシン語)
コンピュータが直接理解して処理できる言語
アセンブリ言語
機械語の命令に対して一対一に対応する命令を備えた言語。
アセンブラと呼ばれるプログラミングによって簡単に機械語に変換することができる。
機械語よりプログラミングにおけるアドレス指定が容易にできる。
・低級言語:機械語に近い。 ex)アセンブリ言語
・高級言語:高級言語→コンパイル(翻訳)→機械語
C言語の特徴
もともとは内輪で使われていた。
基本精神は「プログラマーを信頼する」。
簡単に暴走するプログラムも作れてしまう。
C言語の長所:
1、見通しよく処理言語を記述できる。
2、言語構造がシンプル
3、複雑なデータを簡単に扱うことができる
4、ビット操作やポインタ演算など低レベルの処理ができる
5、他の高級言語より実行速度の速いプログラムが作成できる
C言語の短所:
1、プログラムの可読性が低い。理解しづらい。
2、プログラムエラーでなくても暴走する可能性が高い。
3、文法上セイルされていない部分や多くの例外がある。
C++
C言語にオブジェクティブ指向の考え方を取り入れて拡張したプログラミング言語
ex) カプセル化、継承、多様性
C
C++をベースにしたオブジェクト指向プログラミング言語
プログラムの作成から実行まで
・Cソースのファイル(拡張子は.c)→コンパイル→オブジェクトプログラム→リンク→実行可能プログラム(a.out)
・gccコマンド:プログラムを機械語に翻訳→a.outと言うファイルに書き込まれる