プログラミング言語とは、コンピュータにおけるソフトウエアを開発することを主目的に作られた人工言語である。つまり、ソフトを作るときに書いたりする、映画とかで研修室の画面に流れてたりする、ムズカシソーなアレ。
概要
プログラミング言語の歴史は、コンピュータこと電子計算機よりも長いわけだが、面倒なのでここではスルー。詳しくは、Wikipedia:階差機関にでも。
プログラミング言語は、コンピュータへの命令することを第一に作られている。それを支援する、構造記述能力、表現力が備わっていることが普通である。また、日本語や英語といった自然言語と異なり、曖昧な解釈はできない。
プログラミング言語には高級言語と低級言語がある。
低級言語とは、機械語及びアセンブリ言語のことである。
アセンブリ言語は、機械語を英語などの自然言語などで解釈しやすいように作られたものだが、いずれもCPUの処理手順を1つずつ記述しなければいけない。
これらはCPU毎に言語仕様が違うため、あるCPU用に書いた機械語プログラムを全く別のCPUに再利用することはできない。
また、論理的には1つの処理も、複数の手順を踏まえないといけないので記述数が膨大になりやすく、現在では細かい処理手順の最適化を行う際に使われることが多い。
対して高級言語とは、自然言語をベースに人間の論理に合わせて作られたプログラミング言語を指す。CPUの言語仕様から自由ならば高級言語である。
比較的習得が楽ではあるが、高級言語を機械語に翻訳するコンパイラーやインタープリターの性能が悪いと、非効率で処理の遅いプログラムになる恐れがある。
近年の様々なパラダイムを取り込み洗練された言語に親しんでいる人から見ると、過去の言語は野暮ったく低級のように見えてしまうかもしれないが、そのような優劣を論じる用語ではない。
OSやアプリケーションそのものを作成できる言語をプログラミング言語というのに対し、その上で操作や処理を記述する言語をスクリプト言語と呼び、これらは区別されることが多い。一部はプログラミング言語をベースに作られていることがある。
プログラミング言語におけるパラダイム
プログラミング言語では、その言語に対するパラダイムが存在する。
パラダイムとは、広義で言えば、物の捉え方の事を指す。
プログラミング言語におけるパラダイムとは、プログラミング言語の捉え方を表したものである。
以下に、代表的なパラダイムを記述する。
- 構造化
- 手続き型
- モジュール型
- オブジェクト指向
- アスペクト指向
- イベント駆動型
- 関数型
これらは、排他的な特徴ではないため、当然複数のパラダイムをを併せ持つ言語が存在する。そのようなマルチパラダイム言語という。
多くの言語はマルチパラダイム言語だが、特に多くのパラダイムを実現している言語を指して言うことが多い(例: C++, D言語)。
主なプログラミング言語(高級言語)
- BASIC
- COBOL
- FORTRAN
- Pascal
- C
- C++
- C#
- Java
主なスクリプト言語
- Perl
- Python
- Ruby
- JavaScript
- Visual Basic for Application(VBA)
- PHP
プログラミング言語が作られる目的
現在、プログラミング言語は非常に多く存在しているが、言語が作られる理由にはさまざまな理由がある。
- 以前の言語の拡張として (例: C++, C++マネージ拡張, C++/CLI, Objective-C)
- ちょっとしたことをお手軽にやりたい (例: シェルスクリプト系)
- ちょっとしたことをお手軽にやりたい。高機能で (例: Ruby, Python)
- OSを移植しやすくするため (例: C言語)
- そもそも仮想マシンで動かせばどこでも動くんじゃね (例: Java)
- Javaの人気に嫉妬して(いつものように)パクった。後悔はしていない(例: C#)
- 言語設計の研究のため。ネタ言語じゃないよ!! (例: BrainF*ck)
- コンビネータ理論に基づいて言語を作ってみたもの。ネタ言語じゃな…くもない(例: unlambda, LazyK)
- 環境に特化した言語が必要になって (例: PostScript, SQL, JavaScript, ニワン語&ニコス)
- 実は別目的だったんだけど、機能追加してたら言語になってた (例: ActionScript)
- 新しい概念実装のため (例: Lisp)
- ハードウエア設計のため (例: Verilog)
- 英語よりも日本語だろJK (例: ひまわり, なでしこ)
- 他の言語に組み込むため (例: Lua)
- 俺最強言語を作って、俺TUEEEEEしたくなって (例: D言語)
- サンプルプログラム内蔵してみた (例: HQ9+)
- 読みにくくしてみた (例: grass, whitespace)
- ゲームだ (例: CarnageHeart)
- 教育用だ (例: LEGO MindStorm, LOGO, CASL)
- Hello,World!を最短コードで表示してみた (例: BrainCrash)
- WebとDBに強い言語を作ってみた。文法?とりあえずCっぽくしとけば良いんじゃね。(例: PHP)
- 新言語(信玄後)だから(例: 織田信長)
- 昔は皆これから始めたもんだ(例: BASIC)
- IT土方専用 (例: Visual Basic)
- 元祖最強俺言語、何でもできるよ! (例: Perl)
- 成果物のスパゲッティさは他の追随を許さない。爺専用 (例: COBOL)
- 非情シス部門で勝手システムを作るためのもの。あまり関りたくない (例: Visual Basic for Applications)
- 日本においては税金の無駄使い公共事業用だった (例: Prolog)
- 真祖とか始祖とかそんな感じ。ゆとり世代には伝説の類 (例: Fortran)
- なにげにインストールベースでは最多クラス (例: Visual Basic Scripting Edition)
- 主に教育用だ。ターボとか付いてて、エディタにタダで付いてくるすごいのもあった (例: Pascal)
- 副作用が許されるのは小学生までだよね (例: Haskell)
- 関数型言語とオブジェクト指向を合せたら最強じゃね? (例: Objective Caml, F#, Scala)
- マイクロソフト帝国には誰も逆らえないことを、結果的に証明した(例: Delphi, Object Pascal)
- 制御構造を持たないシンプルな文法、なんでも文字列、簡単GUI(例: Tcl/Tk)
- grepやsedじゃ物足りなくなって (例: awk、Perl)
- WebでもやっぱりBASICだろう(例: VBScript)
面倒なことに、言語内でもバージョンやら実装の違いがあって、トラブルの原因になったりもする。とても面倒。
一般に歴史的な理由と使える領域の広さから、C言語はプログラマーの一般教養言語となっている。
関連動画
タグ検索「プログラミング」
関連商品

![ニコニコ市場は2023年11月に終了しました。]()
![ニコニコ市場は2023年11月に終了しました。]()
![ニコニコ市場は2023年11月に終了しました。]()
関連コミュニティ
![ニコニコミュニティは2024年8月に終了しました。]()
関連用語
- 日本語じゃない日本語
- プログラミング関連用語の一覧
- ソフトウェアの一覧