目次
はじめに
はじめまして、5日目の記事を担当する「たくみ」です。
「PythonはCにえいきょうをうけ作られている」という話はよく聞きますが、実際どのような関係性があるのか、またCやPythonが生まれた経緯について気になったので、この機会に調べてみることにします。
プログラミングを学び始めた初学者の疑問を解決できれば幸いです。
各言語の歴史について
本文の前に、先ずはCとPythonの歴史について軽く触れておきたいと思います。
C言語について
C言語は、1972年にAT&Tベル研究所という所で電気通信の研究をしていたメンバーによって開発されました。もともとはカーネルを記述するためではなく、OS上で動くユーティリティを作成するために作られた言語です。古い言語で不便も多いが、自由度が高く現在まで幅広く使用されているプログラミング言語です。
Pythonについて
1994年にpython1.0が公開され、2000年にpython2.0、その後長い試験期間を経てpython3.0が公開されました。if文,for文,while文など多くの制御構造からCとの共通点がみられるように、C言語の影響を強く受けたプログラミング言語です。
C言語とPythonの相違点
main関数
まず、C言語にはmain関数という重要な役割を果たす関数があります。オペレーティングシステムはプログラムが実行される際にmain関数を探し、そこから処理を開始します。この際main関数がないとエラーを吐いてしまう可能性があります。
一方Pythonは、スクリプトを上から下へ直接実行するのでmain関数を必須としません。この点を疑問に感じていましたが、言語の特性による違いであるとわかりました。
文法上の違い
C言語
・セミコロンが必須
・より詳細な文章
void example() {
if (1) {
printf("複雑な文法");
}
}
Python
・インデントで構造を理解
・簡潔な文法
・セミコロン不要
def example():
if True:
print("シンプルな文法")
こう見ると、似ているようですがはっきりと違いがあることがわかります。
コンパイルの必要性
これはPyhtonを学習していて疑問に思ったのですが、なぜPythonのコードを実行する際はコンパイルをしなくてもよいのか?この答えは言語の特性の違いにあります。
まず、C言語はコンパイラ言語、Pythonはインタープリタ言語というものに分類されます。
まずCのようなコンパイラ言語とは、実行する際にすべての文章をコンパイラ、すなわち機械語に翻訳する必要のある言語のことを指します。一方Pythonなどのインタープリタ言語は、コードを1行ずつ逐一翻訳しながら実行していきます。これが、Pythonを実行する際にコンパイラが必要でない理由です。
それぞれメリットデメリットが存在するので、どちらが優れているというわけではありません。
さいごに
今回はC言語とPythonの歴史や相違点についてまとめました。
さまざまな技術や知識は、その歴史・背景を知ったうえで使うとよりおもしろいのではないかと感じます。
この記事を読んで、小さな疑問が解決していただければ嬉しいです。