狩猟免許試験も終わり、来年のワインエキスパートエクセレンス資格受験まで脳みそをなまらせないため、PCEPの資格を取ることにしました。
試験自体は有料ですが(いくらかかるか知らないけどどうせワインより安い)、ラーニングコンテンツは無料のやつが転がっています。


・自然言語とプログラミング言語
 人間が話す言語は自然発達した「Natural language」と言われ、対してプログラミング言語は「Instruction list(IL)」から構成される。
 
・言語を構成するもの
  自然言語を構成するもの
 ・Alphabet(文字)
 ・Lexis (語彙)
 ・Syntax (文法)
 ・Semantics (意味、解釈) 
 
 ILは「機械言語の文字列」から構成される。
 機械言語は人間が見てわかるものではないため、High level programming languageと言われる人間フレンドリーな言葉が存在する。
 High level programming languageで書かれた命令文は「ソースコード」と呼ばれ、「ソースファイル」として保持される。

 コンパイル方式とインタープリタ方式
High level programming languageで書かれた命令文は自然言語と似た感じのルール(Alphabet(文字)、Lexis (語彙)、Syntax (文法)、Semantics (意味、解釈))がある。
書いたプログラムを走らせるためには、High level programming languageから機械言語に変換する必要があり、その変換方法は基本的に以下2つ(例外的に両方できるやつもあったりする)。
・コンパイル方式…内容に変更があるたびに都度都度変換をかけ、変換結果としてファイルが出力される(Windowsならexeファイルとか)
・インタープリタ方式…コンピュータが都度変換というより翻訳する。内容変更都度ファイル出力する必要はない。
 
インタープリタの役割
ソースコードはフォントの違いなどがないシンプルなテキストファイルでなければならない。
インタープリタは文法のチェックを行い、問題がある場合はエラーメッセージを返し、問題がなければプログラムの実行もしくはコンパイルを実行してファイルを吐き出す。
つまりインタープリタ方式の場合の動きとしてはソースコードの「読み込み→チェック→実行」となり、最低3回はソースが走ることになる。
コンパイルとインタープリタのどちらが良いというものではなく、一長一短賛否両論ある。


コンパイル方式インタープリタ方式
◎利点・コンパイル済みコードの実行が早い・エンドユーザがコンパイラを使用する必要はない・コンパイル済みのコードは機械言語であり、知的財産保護に役立つ・コーディングが終わったらすぐに実行することができる・ハードウエアごとにコンパイラを用意する必要がない
×欠点・コンパイルに時間がかかり、修正のたびに実施する必要がある。・実行するハードウエアに応じた個数のコンパイラが必要・翻訳に時間がかかるため実行時間があまり早くない・エンドユーザもインタープリタを用意する必要がある
 
 Pythonはインタープリタ方式を採用しているため、エンドユーザもインタープリタを持つ必要があるが、Pythonのインタープリタは無料である。
インタープリタ方式で動く言語のことを「スクリプト言語」と呼ぶことがある。 

Pythonとは
インタープリタ方式、オブジェクト指向の、動的型付けが可能な(変数定義不要の意味)High level programming languageである。
イギリスBBCのテレビ番組モンティパイソンにちなんで名付けられた。
発明したのはGuido van Rossumである。
開発方針は以下の通り
・直感的にコーディングできること
・オープンソースであること
・英語として理解できうるものであること
・いろいろな目的で使用できること

ライバル言語としてはPerl(C言語に似てる)とRuby(Pythonより色々できてInnovative)があり、Pythonはパールとルビーの中間くらいに位置する。