プログラム‐げんご【プログラム言語】
プログラム言語
プログラミング言語
別名:プログラム言語
【英】programing language, programming language
プログラミング言語とは、計算機に対して動作手順、動作方法、動作内容などを適切に指示するために用いられる、人工的に構成された言語体系のことである。
情報処理技術者試験などでは「プログラム言語」と表記されることもある。
計算機は、機械語と呼ばれる中央処理装置が直接解釈できる命令を実行することによって動作する。しかし、人間にとって、機械語を扱うことは非常に難しい。そのため、計算機に与える指示を、より人間にとって扱いやすい表現で与えるための手段として、プログラミング言語が用いられている。
プログラミング言語において記述される個々の命令の集まりは、プログラムと呼ばれる。プログラミング言語を用いてプログラムを設計・記述する者はプログラマーと呼ばれ、プログラミング言語を用いて記述された文書はソースコードと呼ばれる。
プログラミング言語は、言語の理解のしやすさとともに、厳密さ、簡潔さ、複雑な内容も表現できる柔軟さなどが追求されている。プログラムの利用分野や実行形態などによって、さまざまな種類のプログラミング言語が開発されている。その、それぞれのプログラミング言語は、固有の文法、語彙、意味論を持ち、仕様が厳密に規定されている。
カンザス大学のWebサイト上で、Bill Kinnersleyによって管理運営されている「The Language List」では、過去から現在に至るまで存在した、およそ2500種類に上るプログラミング言語が紹介されている。
利用形態によるプログラミング言語の分類プログラミング言語を利用形態から分類すると、アセンブリ言語、コンパイラ型言語、インタープリタ型言語(あるいはスクリプト言語)に分けることができる。
アセンブリ言語は、機械語に対応する命令をシンボリックな表現で記述する点に特徴がある。CPUのレベルに近い命令記述がとられることから、機械語とともに、低級言語と呼ばれる区分にも分類される。
コンパイラ型言語は、変数名や数式などのような、人間が読みやすい、より抽象的な表現によってプログラムを記述し、コンパイラを用いて機械語や中間言語などのより低レベルの命令に変換し、目的のプログラムを生成する。
インタープリタ型言語は、実行時にその都度、命令の解釈と実行を行うタイプであり、コンパイルの過程がないか、あるいはユーザーから隠されている形態である。コンパイラ型言語とインタープリタ型言語は、人間に近い表現を用いる高級言語の範疇にほぼ一致する。
パラダイムによるプログラミング言語の分類プログラムをどのように構成するかという観点(パラダイム)から、プログラミング言語を分類すれば、手続き型言語、関数型言語、論理型言語、あるいは、オブジェクト指向言語などが存在する。同じパラダイムの言語は、文法の違いがあっても、大まかなプログラムの構成は互いに似通っている。
手続き型言語は、手続きの集まりをもとに、ジャンプ、条件判定、繰り返しなどを制御しプログラムを構築する。主な言語としては、Fortran、COBOL、PL/I、BASIC、Ada、C言語、Pascalなどを挙げることができる。
関数型言語においては、プログラムは、関数の合成として表現される。主な例としては、Lisp、Scheme、Haskel、Miranda、ML、Ocaml、F#などがある。
論理型言語では、プログラムは、論理式の集まりとして表現される。主な例としては、Planner、Prologなどがある。
オブジェクト指向言語では、プログラムは、オブジェクト群とその相互作用として表現される。主な例としては、Simula、Smalltalk、C++、Objective-C、Eiffel、Dylan、Java、C#、D言語などがある。
その他に、スクリプト言語と呼ばれる、インタープリタ型言語の実行形態で、アプリケーションレベルでの記述に適した言語も数多く登場している。スクリプト言語の主な例としては、GUIなどに用いられるTcl/TK、Web構築においてサーバー側で用いられるPerl、Python、Ruby、Webブラウザ側で用いられるJavaScript、Flashなどがある。
なお、プログラミング言語の多くは、英語の語彙を用いるが、日本語を用いたプログラムが作成できる「なでしこ」や「Mind」などのプログラミング言語も存在する。
その他あるプログラミング言語のソースコードや中間ファイルなどを処理する個々のプログラムやツール類を言語処理系と呼び、論理的に規定されたプログラミング言語そのものとは区別されている。例えば、BASICのソースコードを、BASICコンパイラという言語処理系を用いてコンパイルすると、直接に実行可能な実行ファイルが生成される。しかし、同じBASICのソースコードを、別の言語処理系であるBASICインタプリタを用いて、コンパイルをせずに直接実行することもできる。つまり、あるプログラミング言語がコンパイラ型言語であるか否かということは、言語そのものではなく、実際に実装された言語処理系の問題であるといえる。
現実の商用化された言語処理系は、技術的な流行を取り入れ、複数のパラダイムを利用可能にした、ハイブリッド型、あるいはマルチパラダイム型になっている場合が多い。
参照リンク
The Language List - (英語)
ISO/IEC JTC1/SC22/WG14 - C言語ワーキンググループ - (英語)
Javaテクノロジ - (Sun Microsystems)
オブジェクト指向スクリプト言語 Ruby
プログラム言語
利用者(225-5)は、フォートラン、コボル、ベーシック、あるいはアルゴルのような一般的なプログラム言語 1や特定の言語でプログラム(225-8)を書くことによって、課題を処理することができる。これらの言語は、データバンク 2を創り出し維持するのに使われるデータベース管理システム 2、調査データ処理プログラム 3、あるいは統計パッケージ 4のような、コンピューターの中央記憶装置(226-2)に保管されるデータ処理プログラム(226-9)を使うために考案されたものである。情報をコンピューターに入力し結果を得るために用いられる方法は、データ処理の方式に応じて異なることがある。バッチ処理 7では、普通の入出力装置は、カード・リーダー 5とライン・プリンター 6である。コンソール 8は、タイム・シェアリング方式 9におけるデータ処理のための普通の入出力装置である。いずれの場合においても、入力装置はコンピューターとは場所的に離れている場合があり、これらの条件の下でのデータ処理は、遠隔の端末装置 10によって達成される。
プログラミング言語
(プログラム言語 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/08/22 10:30 UTC 版)
プログラミング言語(プログラミングげんご、英語: programming language)とは、プログラムを記述するための人工言語[1]。コンピュータプログラムを書くために考案された、正確に定義された記号と規則のしくみ[2]。以前は、しばしばプログラム言語と表記された。
注釈
- ^ IBMは PL/I をリリースしたとき、やや野心的にマニュアルを The universal programming language PL/I (IBM Library; 1966) と名づけている。このタイトルはIBMが目標としていた無制限のサブセット化機能を反映している「PL/I は特定の応用に必要な部分を抜き出し、サブセットを分離可能なように設計されている」 (“Encyclopaedia of Mathematics » P » PL/I”. SpringerLink. 2006年6月29日閲覧。). AdaとUNCOLも同様の初期目標を持っていた。
- ^ CPUの命令コードというのは、本当のCPUレベルではたとえば「00101011」のようにただの2進数の羅列であり、人間には意味不明である。
- ^ 数文字のアルファベットや数字を組み合わせて、CPUに対する命令やCPUが操作すべきレジスタなどを表記したもの。
- ^ なおチューリング完全な言語ならば、同じアルゴリズム群を表現可能である。
- ^ Benjamin C. Pierce は次のように書いている。
- ". . . the lambda calculus has seen widespread use in the specification of programming language features, in language design and implementation, and in the study of type systems."(訳:ラムダ計算はプログラミング言語の仕様記述、言語設計と実装、型システムの研究に広く使われている)
- ^ 自然言語では Colorless green ideas sleep furiously. という例文がある。
- ^ その言語の設計次第である。構文的に正しければ必ず整合した意味を持つような設計というものもありうる。
- ^ たとえば変数の宣言などでは、その名前の直前ないし直後といったことが多い。ただしC言語では「void (*signal(int sig, void (*func)(int)))(int);」などといったように、いったいどこにあるのが名前なのか型なのか、全くわからないことになることがある。
- ^ 1960年代、JISでは「プログラム言語」の訳語が用いられた(JIS C 6201-1967「電子計算機プログラム言語FORTRAN」)。このためプログラム言語としている例もJISをはじめとして広く見られるが、英フレーズ programming language に当てる語として必ずしも適切とは言えない。[要出典]
出典
- ^ ISO 5127—Information and documentation—Vocabulary, clause 01.05.10 で、プログラミング言語は「プログラムを記述するための人工言語」と定義されている。
- ^ Lexico, definition of programming language. A system of precisely defined symbols and rules devised for writing computer programs.
- ^ MacLennan, Bruce J. (1987年). Principles of Programming Languages. Oxford University Press. p. 1. ISBN 0-19-511306-3
- ^ Frederick P. Brooks, Jr.: The Mythical Man-Month, Addison-Wesley, 1982, pp. 93-94
- ^ The Encyclopedia of Computer Languages Archived 2011年2月20日, at the Wayback Machine. (Murdoch University、オーストラリア)
- ^ 英: interpreted language
- ^ 英: compiled language
- ^ 英: pure compiled language
- ^ [1]
- ^ [2]
- ^ [3]
- ^ 英: structured programming language
- ^ a b O'Reilly Media. “History of programming languages”. 2006年10月5日閲覧。
- ^ Frank da Cruz. IBM Punch Cards Columbia University Computing History.
- ^ Richard L. Wexelblat: History of Programming Languages, Academic Press, 1981, chapter XIV.
- ^ François Labelle. “Programming Language Usage Graph”. Sourceforge. 2006年6月21日閲覧。. Sorceforge でのプロジェクト群で使われている言語の統計をとった結果である。C言語はよく使われているが、2006年には Java に抜かれている。ただし、C++を含めると一番多く使われていることになる。
- ^ Hayes, Brian (2006年). “The Semicolon Wars”. American Scientist 94 (4): pp. 299-303.
- ^ Dijkstra, Edsger W. (March 1968). “Go To Statement Considered Harmful”. Communications of the ACM 11 (3): 147–148 2006年6月29日閲覧。.
- ^ Tetsuro Fujise, Takashi Chikayama, Kazuaki Rokusawa, Akihiko Nakase (December 1994). "KLIC: A Portable Implementation of KL1" Proc. of FGCS '94, ICOT Tokyo, December 1994. 第五世代コンピュータ・プロジェクト・アーカイブ
- ^ Jim Bender (2004年3月15日). “Mini-Bibliography on Modules for Functional Programming Languages”. ReadScheme.org. 2006年9月27日閲覧。
- ^ a b c d e Andrew Cooke. “An Introduction to Programming Languages”. 2006年6月30日閲覧。
- ^ 英: statically typed language
- ^ 英: dynamically typed language
- ^ Milner, R.; M. Tofte, R. Harper and D. MacQueen. (1997年). The Definition of Standard ML (Revised). MIT Press. ISBN 0-262-63181-4
- ^ Kelsey, Richard; William Clinger and Jonathan Rees (1998年2月). “Section 7.2 Formal semantics”. Revised5 Report on the Algorithmic Language Scheme. 2006年6月9日閲覧。
- ^ ANSI — Programming Language Rexx, X3-274.1996
- ^ Survey of Job advertisements mentioning a given language
- ^ Counting programming languages by book sales Archived 2008年5月17日, at the Wayback Machine.
- ^ Bieman, J.M.; Murdock, V., Finding code on the World Wide Web: a preliminary investigation, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation, 2001
- ^ Dijkstra, Edsger W. On the foolishness of "natural language programming." EWD667.
- ^ Perlis, Alan, Epigrams on Programming. SIGPLAN Notices Vol. 17, No. 9, September 1982, pp. 7-13
- 1 プログラミング言語とは
- 2 プログラミング言語の概要
- 3 歴史
- 4 要素
- 5 設計と実装
- 6 言語利用状況の計測
- 7 他
- 8 外部リンク
プログラム言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/14 15:04 UTC 版)
Pythonにおいて@は宣言したデコレータを呼び出す際に用いる。 Rubyにおいて@はインスタンス変数の識別子を表し、@hogeでインスタンス間での変数のやりとりが可能となる。 Perlにおいて@は配列変数を宣言する。 PHPにおいて@はエラー制御演算子を表し、@func(funcは予約関数)で、一定のエラー表示を抑制することができる。 Vue.jsにおいて@はv-onディレクティブの省略記法となっている。v-on:clickの場合は@clickと記述することができる。
※この「プログラム言語」の解説は、「単価記号」の解説の一部です。
「プログラム言語」を含む「単価記号」の記事については、「単価記号」の概要を参照ください。
「プログラム言語」の例文・使い方・用例・文例
- 数学的および科学的な目的のための高級なプログラム言語
- トップダウンモジュールアプローチを通じてプログラムを教えるように設計されたプログラム言語
- プログラム言語で,手続き名などに使用できない文字列
- アセンブリ言語という,プログラム言語
- 記号語という,コンピューターのプログラム言語
- 第四世代言語という,コンピューターのプログラム言語
- PL/Iという,フォートランとコボルの長所を取り入れたプログラム言語
- データ変換を関数としてとらえて処理を記述するプログラム言語
- 逆ポーランド記法という,プログラム言語の表記法
- GHCというプログラム言語
- 逐次的な手順を書く構造のプログラム言語
- 逐次的な手順にとらわれずに記述するプログラム言語
- LISPというプログラム言語
- 述語論理に基づいて記述するプログラム言語
- ベーシックという初心者向きのコンピューターのプログラム言語
- フォートランという,科学技術計算用のプログラム言語
- コンパイラー言語という,コンパイラーで機械コードに翻訳される人間にわかりやすい形で書かれたプログラム言語
- 制御の役割をもつコンピュータープログラム言語システム中の知識
プログラム言語と同じ種類の言葉
- プログラム言語のページへのリンク