単語記事: プログラミング言語

編集

プログラミング言語とは、コンピュータにおけるソフトエアを開発することを的に作られた人工言語である。つまり、ソフトを作るときに書いたりする、映画とかで研修室の画面に流れてたりする、ムズカシソーなアレ

概要

プログラミング言語歴史は、コンピュータこと電子計算機よりも長いわけだが、面倒なのでここではスルー。詳しくは、Wikipedia:階差機関にでも。

プログラミング言語は、コンピュータへの命令することを第一に作られている。それを支援する、構造記述、表現が備わっていることが普通である。また、日本語英語といった自然と異なり、曖昧な解釈はできない[1]

一般に歴史的な理由と使える領域の広さから、C言語プログラマーの一般教養言となっている。

高級言語と低級言語

プログラミング言語には高級言と低級言がある。

低級言語

低級言とは、機械語及びアセンブリ言語(アセンブラ)のことである。

アセンブリ言語は、機械語英語などの自然などで解釈しやすいように作られたものだが、いずれもCPUの処理手順を1つずつ記述しなければいけない。しかもCPU毎に言仕様が違うため、あるCPU用に書いた機械語プログラムを全く別のCPUに再利用することはできない。

また、論理的には1つの処理も、複数の手順を踏まえないといけないので記述数が膨大になりやすく、現在では処理手順の細かい最適化を行う際に部分的に使われることが多い。 

高級言語

対して高級言とは、自然ベースに人間の論理に合わせて作られたプログラミング言語す。CPU仕様から自由ならば高級言である。

低級言よりは習得が楽ではあるが、高級言機械語翻訳するコンパイラーやインタープリターの性が悪いと、非効率で処理の遅いプログラムになる恐れがある。

高級言の中でも、記述内容が機械語に近いもの(例えばメモリへの書き込みの方法やタイミング定できるなど)ほど低級で、人間の感覚に近いもの(オブジェクト指向など)をより高級とする考え方もある。

近年の様々なパラダイムを取り込み洗練された言に親しんでいる人から見ると、過去の言は野暮ったく低級のように見えてしまうかもしれないが、あくまでも人間の考え方に近いか遠いかの違いを表す表現であって、言の優劣を論じる用ではない。パフォーマンスの問題から言えば、むしろ低級な言ほど(労を惜しまなければ)できることの種類が多く、高級な言ほど処理速度が遅くなる傾向にある。

実際の言の優劣は、言仕様の良し悪しよりも入手可ライブラリの量と質や処理系最適化レベル開発環境の充実度、動作可なプラットフォームの普及状態などによって決まってしまうことが少なくない。

コンパイラ言語とスクリプト言語

実行する前にコンパイルという変換作業を必要とするものをコンパイラと呼び、操作や処理を記述したプログラムをそのままインタプリタに解釈させ実行する言スクリプト言語(インタプリタ)と呼ぶ。言仕様そのものの違いではなく、処理系の違いなのだが(スクリプト言語でも別途コンパイラを作ってコンパイルしてから実行するようにすればコンパイラといえなくもない)、実用上は両者を区別することが多い。

一つのアプリケーション上で動作し、アプリケーション上の操作を一括して行うように記述できるものもプログラミング言語(スクリプト言語)と呼ぶことができるが、一般にはマクロと呼ばれて汎用プログラミング言語とは分けて扱われる。

一般的な傾向としては処理速度マクロ < スクリプト言語 < コンパイラ < 機械語 の順番だが、処理系最適化プログラマの技量(使用するアルゴリズム)によって大きく変わってしまうこともあるので、「〜で書かれているから速い」という考え方があてはまらない場合もありえる。

静的型付けと動的型付け

ほとんどの高級言の概念が実装されているが、が実行前に決まっていなければならないかどうかで静的型付けと動的型付けに分かれる。

型付け

プログラミング言語におけるパラダイム

プログラミング言語では、その言に対するパラダイムが存在する。
パラダイムとは、プログラムを離れて一般的な広義で言えば、物の捉え方の事をす。
プログラミング言語におけるパラダイムとは、プログラミング言語の捉え方を表したものである。
以下に、代表的なパラダイムを記述する。詳細はプログラミングパラダイムの記事参照

これらは、排他的な特徴ではないため、当然複数のパラダイムをを併せ持つ言が存在する。そのような言マルチパラダイム言という。多くの言マルチパラダイム言だが、特に多くのパラダイムを実現している言して言うことが多い(例: C++, D言語)。

主なプログラミング言語(高級言語)

主なスクリプト言語

プログラミング言語が作られる目的(一覧)

現在プログラミング言語は非常に多く存在しているが、言が作られる理由にはさまざまな理由がある。

面倒なことに、言内でもバージョンやら実装の違いがあって、トラブルの原因になったりもする。とても面倒。

関連動画

タグ検索「プログラミング」

関連商品

関連コミュニティ

関連用語

脚注

  1. *曖昧さがないといっても実行時の話で、言仕様書の段階では曖昧さが取り除ききれていない場合も少なくない。リファレンス実装がこの問題を解決している場合もある。

【スポンサーリンク】

携帯版URL:
http://dic.nicomoba.jp/k/a/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
ページ番号: 194930 リビジョン番号: 2407826
読み:プログラミングゲンゴ
初版作成日: 08/06/03 03:46 ◆ 最終更新日: 16/09/19 23:18
編集内容についての説明/コメント: 掲示板111,122対応
記事編集 / 編集履歴を閲覧

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

プログラミング言語について語るスレ

113 : ななしのよっしん :2016/01/31(日) 02:10:20 ID: ZX4ICWqi+R
>>lv249051017

114 : ななしのよっしん :2016/01/31(日) 08:45:43 ID: lmgGkC95A+
>>112
出来ますと言いって
化けの皮が剥がれる頃には地雷の山
よりはマシ
115 : ななしのよっしん :2016/03/20(日) 13:16:58 ID: ZX4ICWqi+R
>>lv256017127
116 : ななしのよっしん :2016/04/30(土) 12:03:46 ID: r1WdBBw1tJ
どの程度書ければ(知ってれば)
一般教養をわかってると言える?
117 : ななしのよっしん :2016/04/30(土) 12:38:25 ID: lmgGkC95A+
他人の書いたバグを直せれば中級
自分の書いたバグを直せれば上級
118 : ななしのよっしん :2016/05/10(火) 22:33:37 ID: s5nE1ID88Q
>>116
「Cは一般教養」の話か?
Cがそう言われるのはメモリ関連の細かい制動を知っておいてほしい(最近それらを隠蔽する便利な言が増えたから)ためだと思うので、
「malloc/freeによるメモリ確保と解放」
ポインタによるデータアクセス
「↑による文字列操作」
あたりが「Cは一般教養」の根幹じゃないかね
119 : ななしのよっしん :2016/05/11(水) 15:21:44 ID: lmgGkC95A+
コンパイルエラーごときで一切悩まない(当然)
・障時や検時に問題の切り分けができる(基本)
ゼロ終端の文字列や可変長データを難なく扱える(ここからC特有)
・例外スロー・キャッチしで異常系をカバーした処理を書ける
・全てのオブジェクトサイズと寿命を把握しそれを管理できるフローを構築できる
120 : ななしのよっしん :2016/05/30(月) 20:14:04 ID: /XhwdqXBq1
Cが一般教養といわれるのは単に歴史的な事情だよ。
それなりに移植性があって記述もそこそこあってどこでも大体使えるのがCしかなかったから。現在の感覚だと低レベル扱いされてるが、元々はプラットフォーム別にアセンブリ言語まで潜らなくていいような便利言ポジションだった。アルゴリズムの教科書とかで使われる感じね。
で、その意味でC言語の後継はぶっちゃけ存在しないと思う。近いのはJavaとかJavaScriptでどこでも大体動くが環境サンドボックスになるから何か違うし、P言系は好みが割れるんで必ずしも一般性がない。C++は機ヘビー過ぎてカルト化してる。結局「Cぐらい(言そのものは)簡単だから覚えろや」ということになってしまうわけで。
ちなみに「トーシロポインタがダメ」なんてのはここ30年ずっと言われてるので、Cプログラマ準が下がったとは思わない。昔も今もCはそんなもんなんよ。
121 : ななしのよっしん :2016/07/06(水) 07:31:17 ID: 7D6EgVJ3VN
#include Kojun


Request KissMyAss() {
case accepted
goto LickMyAssHole()
case refused
goto Nuxu()
breakback;

Nuxu(){
If DickDiameter > PrivateAnusDiameter
(省略しています。全て読むにはこのリンクをクリック!)
122 : ななしのよっしん :2016/09/07(水) 21:01:22 ID: AIaDdvL8GV
swiftが載ってない…だと…!?
  JASRAC許諾番号: 9011622001Y31015