プログラミング言語
プログラムを記述するための形式言語
コンピュータと人工知能・ロボットは、私たちの社会、私たちの仕事のあり方を大きく変えつつあります。これらに関して全体を俯瞰する知識が必要です。
重要なのは、コーディングのスキルそのものではなく、コーディングの体験を通して、プログラミング的思考力を身につけること、また、他者(機械も他者です)とのコミュニケーション能力を身につけることです。
プログラミング言語の動向
- The RedMonk Programming Language Rankings
- StackOverflow Most Popular Technologies
- TIOBE Index
- PYPL|PopularitY of Programming Language index
代表的な言語
- Java コンパイラ/インタプリタ型|オブジェクト指向 Google3大言語
- C# コンパイラ型|オブジェクト指向
- Objective-C コンパイラ型|オブジェクト指向 MacOS iOS 公式開発言語
- JavaScript インタプリタ型|オブジェクト指向
- PHP インタプリタ型|オブジェクト指向
- Processing デザイナー・アーティストのためのプログラミング言語
- p5.js Processing を JavaScript で・・
- R言語 統計解析向けのプログラミング言語と開発実行環境
以下、一般には「プログラミング言語」とは区別されます。
- SQL データベース言語(問い合わせ言語)
- HTML マークアップ言語
- CSS スタイルシート言語
- Sass(SCSS) CSSのメタ言語 Rubyでコンパイルが前提
コンパイラ型とインタプリタ型
コンピュータのCPUは単なる計算機で、0と1で書かれた「機械語」しか理解出来ません。そこでソースコードを機械語に翻訳・通訳する必要が生じます。プログラミング言語は、その仕方の違い、つまり「一括して翻訳する」か「一文ずつ通訳する」かの違いで区別されます。
- コンパイラ型
ソースコードを事前に機械語へ「一括変換」します。結果、実行時の変換プロセスがない分、高速処理が可能になります。また、実行時に変換するための仕組みが必要ないので、単独でプログラムを実行できます。ターゲットとなるOSを選択して動作する、いわゆるネイティブアプリケーションはC++を代表とするコンパイラ型言語で作られています。
例)C, C++, C#, Objective-C, Java, Ruby
- インタプリタ型
インタプリタ型の言語では、書かれたソースコードを逐次読み込んで、それを機械語に変換してコンピュータに命令を与えます。インタプリタ環境があればどこでも動作するため、機種・環境に依存しないプログラミングが可能です。
例)Java, JavaScript, Python, PHP,
プログラミング言語のパラダイム
初期のコンピュータプログラミングは、入力>処理>出力という計算手順を逐次的に書くだけ・・というシンプルなものでしたが、扱う対象の変化に伴い、その書き方の発想も変化してきました。特にGUI(グラフィカルユーザーインターフェイス)の登場で、マウスクリックなどの「イベント」への対応が中心になるとともに、データと処理(関数)をパック化した「オブジェクト」を中心としたプログラミングへと変化してきました。現在のプログラミング言語の多くはオブジェクト指向型のパラダイムを採用しています。
- 構造化プログラミング|Structured programming
- 手続き型プログラミング|Procedural programming
- 関数型プログラミング|Functional programming
- イベント駆動型プログラミング|Event-driven programming
- オブジェクト指向プログラミング|Object-oriented programming