プログラミング言語単語

プログラミングゲンゴ

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

概要

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

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

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

高級言語と低級言語

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

低級言語

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

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

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

高級言語

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

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

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

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

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

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

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

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

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

静的型付けと動的型付け

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

型付け

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

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

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

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

主なスクリプト言語

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

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

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

関連動画

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

関連商品

関連コミュニティ

関連用語

脚注

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

【スポンサーリンク】

スマホ版URL:
https://dic.nicovideo.jp/t/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

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

お絵カキコがありません

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

ピコカキコがありません

プログラミング言語

131 ななしのよっしん
2018/01/28(日) 22:06:54 ID: y30+sxVL4A
実際のコードで例えるならコメントどうでもいい長文書いてる上にイベントハンドラに直接コード垂れ流して「本質的に何だよ」って状態
リファクタリングすべき
132 deadbull
2018/01/28(日) 22:25:38 ID: HvZscS9Puz
>>131
> リファクタリングすべき
否定はしません。文面をご用意いただければ検討はいたします。
133 deadbull
2018/01/31(水) 22:21:09 ID: HvZscS9Puz
>>130にはこの構成でよいと言っていただきましたが、こういった話題は議論しだすと長くなるのが常なので、
掲示板を分離するためにも分割は予定通り実行して、アクセス経路は当記事の関連項目から確保し、
コラムについて当記事からの分離以外に関するご摘は分割後の掲示板でのみお受けしようと思います。
134 ななしのよっしん
2018/10/04(木) 22:30:24 ID: mjdnt/Qig8
C言語プログラマーの一般教養言」ほんとう?
135 ななしのよっしん
2018/10/04(木) 22:33:30 ID: mjdnt/Qig8
記事に対するダメ出しが批判じゃなくて中傷に近くなってるから、もう少し建設的なコメントがほしいところです。
136 ななしのよっしん
2018/10/07(日) 10:57:09 ID: lmgGkC95A+
分割前にくっついてたダラダラした記述がみたいならプログラミング言語選択ガイドのとこにあるよ

中傷どころかプログラマー気質あふれる当然の摘だよ
137 ななしのよっしん
2018/12/29(土) 12:58:59 ID: s5nE1ID88Q
まあ、仕事で開発やってないなんだろうな
仕事場で同じことして「この長いいるか?全部消せ」って言われた事がないという事だから
138 ななしのよっしん
2019/02/03(日) 21:25:12 ID: NOilKqAbLp
まあ、自分では苦労して仕上げたつもりなのに、
「これが必要な理由って、何?」
ってソース見てもらったナチュラルに聞かれたり、
「なんでこんな事したの?教えて?」
って雑談みたいなノリ問い詰められる、てのはあるあるネタだわな。
139 ななしのよっしん
2019/04/10(水) 22:01:41 ID: vEQpkLfpKn
>>137
勝手な推測でこき下ろすの好きだね
140 ななしのよっしん
2019/05/19(日) 05:37:34 ID: OTnnZW+xsL
高級言語の一覧scratchを追加お願いします。