9. プログラミングについて
9.1. コンピュータの構成と動作
本講義の最初の方で、コンピュータはメモリ上に呼び出したデータやプログラムをもとにCPUが命令を処理していく、という様な話をしました。 この時、CPUなどのハードウェアが実行出来る命令は、高速で処理するために極めて単純な命令群として構成され、「機械語」と呼ばれます。
9.2. プログラミング言語
機械語を人間が解読するのは非常に難解なので、この問題を解決するために「プログラミング言語」が考案されました。 機械語よりも数式など人間に理解しやすいプログラムを書くためのルールに沿って記述できるようにしたものです。 こうしてルールに沿って書かれたプログラム(ソースコード)を、ソースコードを実行するプログラムによって処理し、実行するという形になります。
9.3. プログラミング言語の種類
9.4. プログラミング言語の処理系
プログラミング言語で書かれたソースコードを実行するためのプログラム(処理系)にはいくつか種類があります。
1. コンパイラ方式
デメリットとしては、コンパイルする手間がかかることや、コンパイルしたプログラムは他の環境(OSやCPUが異なると)実行できないことなどです。
2. インタープリタ方式
解釈しながら実行されるため、コンパイル型に比べると実行速度が遅いというのが欠点です。特にプログラム中の何度も実行されるような部分では、かなり大きな無駄が生じます。
9.5. プログラミング言語の用途
コンピュータ上で動くプログラムは、科学計算や数値シミュレーション、文字列・画像などのデータの加工・分析、ゲームやグラフィクスの作品創作、Webアプリケーションの開発など、多岐にわたります。
用途 |
言語 |
|---|---|
スマホアプリ |
iOS…Swift, Objective-C Android…Java, Kotlin |
ゲーム開発 |
C, C# |
Web開発 |
PHP, Ruby, Javascript, (HTML, CSS) |
データ解析・機械学習 |
R, Python, Julia |
組込みシステム(家電など) |
C, Java |
9.6. プログラミングの勉強の仕方
1. 興味のあるものに取り組む
2. とにかく書く
3. エラーに対処する
9.7. Rについて
本講義ではRを使ってプログラミングの基礎を学びます。
通常はRを自分のパソコンにインストールして利用する形になりますが、皆さん所持しているパソコンやOSも様々なので今回はGoogle ColaboratoryというWebサービスで演習を行います。