プログラミング言語単語

プログラミングゲンゴ
  • 19
  • 0pt
掲示板へ

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

概要

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

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

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

高級言語と低級言語

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

低級言語

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

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

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

高級言語

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

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

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

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

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

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

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

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

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

静的型付けと動的型付け

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

型付け

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

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

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

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

主なスクリプト言語

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

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

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

関連動画

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

関連商品

関連コミュニティ

関連用語

脚注

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

【スポンサーリンク】

  • 19
  • 0pt
スマホ版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

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

お絵カキコがありません

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

ピコカキコがありません

プログラミング言語

144 ななしのよっしん
2020/07/25(土) 17:17:44 ID: lmgGkC95A+
自動生成で事足りるような低レベル仕事してるプログラマ駆逐される時代が来てしまったか
145 ななしのよっしん
2020/08/18(火) 01:21:00 ID: jVtPCHQ+TX
プログラミングの難しいところはプログラミング言語そのものではないので
AI仕様書からプログラミング起こせたら凄い事だが結局プログラミング言語欲しくなる未来が見える
146 ななしのよっしん
2020/08/26(水) 21:50:44 ID: wixssKMF/J
>>143
マジか、この業界は天才の人口密度ヤバ過ぎだろ
10年どころか5年もしないうちに変わりそうだな
個々の言扱える職人よりコミュ力重視で全体の仕様設計できるストラテジー系の方が最後まで生き残りそうだな
147 ななしのよっしん
2020/08/27(木) 22:28:08 ID: WqJ8yRsGA3
自動生成なんぞそこいら辺にいくらでも転がってるよ
使われないのは、「自動保守」「自動改造」がついてこないと結局ガラクタでしかないからであって
148 ななしのよっしん
2020/08/29(土) 15:09:10 ID: wixssKMF/J
>>147
その辺の事情詳しくないけどjavaとかC+とかpythonとかjavascliptとか使った言の自動作成もできるんか?
イメージ的には何かのシステム作る時に言知らなくても人間側が直感で作りたい仕様を命して、PCソフト側がそのために必要な言コードまで察知して勝手にそこまでコンパイルしてくれるようなやつ
HTMLとかマークアップ系ならそういうの見た事あるが
149 ななしのよっしん
2020/08/29(土) 20:44:43 ID: lmgGkC95A+
顧客が本当に必要だったものを精密に察して、愚かな人類を懇々と説き伏せて、理解・納得させる折伏められている
150 ななしのよっしん
2020/09/02(水) 05:12:54 ID: jVtPCHQ+TX
自動生成に過大な期待をかける人が見る度に
プログラミング言語って人間の愚かな間違いを摘してくれるように発展してきたのになんでそんなに自然に信頼置きたいの?って思ってしまう
151 ななしのよっしん
2020/09/30(水) 00:17:18 ID: /XhwdqXBq1
自然みたいに仕様かける言なんてそれこそ半世紀以上前からあるよ。COBOLっていうんだけど。
152 ななしのよっしん
2020/11/21(土) 22:06:13 ID: Z/hm3yw/4Q
Zen言ライセンス関係のごたごたを見て
なんで日本エンジニアってのはこうなんだろうと情けなく思った
153 ななしのよっしん
2020/11/22(日) 16:35:26 ID: lmgGkC95A+
>>152
バイナリ配布は認めないけどソース開できます…?
何したいのかわからん 頭悪すぎ

あと変にでかくするのも勘弁な