IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

ゼロから歩くPythonの道

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第1回 初めて聞いたインタプリタ&コンパイラ (菱沼佑香) 2019年10月

はじめまして、吉政創成株式会社のアシスタントをしている菱沼と申します。
吉政創成の代表である吉政忠志はPythonエンジニア育成推進協会の代表理事を務めています。そんな方のアシスタントである私は、プログラミング分野の知識は基礎の基礎の基礎ぐらいを多少知っている程度です。
そんな私ですが、今回、Python 3 エンジニア認定基礎試験合格を目指そう!ということで、こちらのコラムを担当させて頂くことになりました。
とっつきやすいプログラミング言語と言われているPythonとは言え、ど素人な私に本当に理解できるのか?と思いながらも、新卒の頃に出会った自社ソフトの開発担当の男前なお姉さまが言っていた「私、学生時代文系。」という言葉を信じて、勉強していきたいと思います。
また、私にはまだ幼い子どもがいますが、来年には小学校でプログラミングの授業が必修になるということもあり、子どもが小学生になった時に説明できる程度にはなっていたいなと思っています。

もし、私と同じようにプログラミングを経験したことはないけどPythonにちょっと興味があるという方や、子どもにも勉強させてみたいけどどんな感じか様子を見たいという方が、このコラムを読んで、やってみよう!と思って頂けたら嬉しいです。
そしてバリバリのエンジニアの方は、どうぞ生ぬるい目で見守ってください。

さて、今回、学習に使うテキストは「いちばんやさしいPython入門教室(大澤文孝氏著/ソーテック社)」です。Webからサンプルコードもダウンロードできるという親切設計です。
まずは初回ですので、「Chapter1 プログラムってなんだろう」から確認してきます。

この章ではプログラムとは何かと言ったことをWindowsの電卓を例に挙げて説明してくれています。
電卓を利用するとき、私たちは単純にボタンを押せば数字を入力し、+-×÷といった計算ができますが、この処理をPCに伝えるためにプログラミング言語を利用します。プログラミング言語は人間には理解できますが、PCには伝わりませんので、電卓の裏側でマシン語に変換されています。

この変換に利用されるのが、インタプリタとコンパイラです。
私はこの二つの言葉は知っていたものの、どちらがどういった役割で、いつ利用されるものなのかと言ったことをいまひとつ理解できていませんでした。
インタプリタとコンパイラとは一体何者なのか?教科書にはこう記述されていました。

>P16
"プログラミング言語の文法に則って記述したプログラムは、最終的にマシン語に変換して実行されます。言い換えると、「マシン語に変換する機能」が無ければ実行できません。
この変換の役割を担うのが「コンパイラ」または「インタプリタ」です。両者の違いは、「完全に変換してマシン語に変換してしまう」か、「少しずつマシン語に変換して、変換できたものからすぐに実行するか」という点です。"

"コンパイラ:コンパイラはソースコードを完全に変換して、マシン語で構成されたファイルを作ります。~実行に際しては変換後のマシン語で構成されたファイルだけあればよく、ソースコードやコンパイラは必要ありません。
反面、ソースコードを修正した場合は、もう一度すべて変換しなおす操作が必要になります。"

"インタプリタ:1行ずつ読み込んで変換して実行します。まとめて変換しないので、マシン語の命令はファイルとしては作られません。その為、実行に際しては、ソースコードとインタプリタが必要です。
コンパイラと違って、明示的な全体の変換作業がないので、ソースコードを修正した場合も、実行しなおせば、その修正はすぐに反映されます。

なるほど。こういう感じですか!(絵心無し。)

fig01

なら、インタプリタの方がバグ修正は速そうだし、インタプリタ選んで、一通りバグを直した後、最後にコンパイラを通したら、バグ修正完ぺきじゃない?両方使ったらいけませんの?という素朴な疑問。良いところ取りしたい。

>P17
"コンパイラとインタプリタのどちらが提供されるのか(もしくは両方提供されるのか)は、プログラミング言語によって異なります。"

違うのか!残念。
インタプリタとコンパイラ、それぞれどの言語が属しているのかと調べてみたところ、有名な言語はそれぞれ下記のとおりのようです。

コンパイラ:C、C++、COBOL、FORTRAN
インタプリタ:Perl、PHP、Ruby、Python
(ちなみにJavaは基本的にはコンパイラだそうですが、いいとこ取りの言語なのでまた別の方式なのだと知りました...。)

多数の言語を利用するプログラマーもいると思うので、そういう人はわざわざ別にインストールするの?面倒...。と考えていたら、インタプリタやコンパイラ、プログラムを書くのに使うテキストエディタという必要なものが一式入っている統合開発環境があるようです。この統合開発環境は有名なものがいくつかあるようなので、その中からお好みで選べそうです。
PythonにはIDLEという専用の統合開発環境があるためIDLEを利用します。この教科書ではインタプリタを使わず、IDLEを利用していくとのこと。

Chapter 2からは「Pythonを始めよう」ということなので、最後にPythonの公式サイトからぽちっとDL&インストールして今回は終了です。サンプルコードもしっかりDLしました。

ここまでお付き合い頂き、ありがとうございました。またぜひ次回もお付き合い頂けたら嬉しいです。

Python運用自動化無料講習

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes