デジタル大辞泉
「プログラム言語」の意味・読み・例文・類語
出典 小学館デジタル大辞泉について 情報 | 凡例
出典 精選版 日本国語大辞典精選版 日本国語大辞典について 情報 | 凡例
プログラム言語
ぷろぐらむげんご
programming language
コンピュータのプログラムを書き表す際の、形式および意味の取決めをいう。プログラミング言語ともいわれる。意味内容をもったことがらを定まった形式で表すというのは、定まったことばで表すということに等しい。そこでコンピュータ分野では、こうした取決めの一つ一つを言語languageとよぶ習慣がある。あわせて言語学での用語を借用して、形式の取決めを構文則(シンタックスsyntax)、意味の取決めを意味則(セマンティクスsemantics)、これらを総合して文法(グラマーgrammar)という。
[筧 捷彦]
コンピュータは与えられたプログラムに従って情報処理を遂行する。そのプログラムは命令の列であり、定められた形式のビット(デジタル情報量の基本単位)の組合せで表現されてメモリーにしまわれている。コンピュータごとに定められているこの表現形式を総称して機械語machine languageという。
機械語では、個々の命令がどんなビット組合せになっているかを人が覚えて書き下していかなければならない。数値を指示する場合でも、その数値を二進法表現に変換して、ビット組合せに書き下さなければならない。そこで、命令には名前をつけてその名前を書き、数値はごく普通に十進法で書けばいいようにしたいという要求に応じてつくられたプログラム言語を、アセンブリ言語assembly languageという。また、コンピュータに計算をさせるのに、四則演算をどの順に行い、必要ならば途中結果をしまっておいて再利用する、などの手順を人が考えて書き下さなくても、計算したい結果を数式の形で書けばいいようにしたい。こうした要求に応じてつくられたプログラム言語を一般に高水準言語high-level(あるいはhigh-order)languageあるいは、コンパイラ言語compiler languageという。
[筧 捷彦]
アセンブリ言語で書き表したプログラムは、機械語での命令列に変換して、初めてコンピュータがそのプログラムの指示に従った情報処理(これをそのプログラムの実行executionという)を行ってくれる。この変換を行うために用意したプログラムをアセンブラという。同様に高水準言語で書き表したプログラムも、そのプログラムが示す計算を行う機械語の命令列に変換して、初めてコンピュータ上で実行できる。この変換を行うために用意したプログラムをコンパイラ(翻訳系)という。
一般に、特定のプログラム言語で書き表したプログラムをコンピュータ上で実行するために、用意してある一連のプログラムやシステムを言語処理系language processorという。アセンブラやコンパイラのように、ある言語で書いたプログラムを他の言語に書き換えるものを変換系translatorという。変換前のプログラムをソースプログラムsource programといい、変換後のプログラムをオブジェクトプログラムobject programという。オブジェクトプログラムに並ぶ命令をオブジェクトコードobject codeという。
言語処理系のなかには、機械語に変換することなしに、そのプログラム言語で書いたプログラムそのもの、または適当な別形式に変換した後のプログラムを逐一解釈しながら代理実行する方式をとるものもある。これをインタープリターinterpreter(「通訳」の意)という。
[筧 捷彦]
プログラム言語の発達を追って、世代分けすることがある。これによれば機械語を第1世代言語first generation language、アセンブリ言語を第2世代言語second generation language、コンパイラ言語を第3世代言語third generation languageという。
多くの実務用のプログラムでは、画面設計をどうしておくか、そこにどのような入力が行われ、それに応じてどのような計算をして結果表示を行うかがその設計の根幹を占める。それなら実際に画面上に部品を配置し、テストデータを入れて、望む計算結果が得られるように式を書き込む、といった操作を積み重ねることで、必要なプログラムが自動的に組みあがるシステムがあればよい。こうした要求にこたえる形で生まれてきた言語を、第4世代言語fourth generation languageという。表計算言語とか、ビジュアル言語ともよばれている。
なお、第5世代言語fifth generation languageという語もあるが、これは日本の通商産業省(現経済産業省)が1980年代に行ったプロジェクトのスローガンとして使われたもので、論理プログラム言語をさしていた。
[筧 捷彦]
機械語、アセンブリ言語、コンパイラ言語などは、いずれもデータを組み合わせてなんらかの計算を施してその結果を記録する、という動作を繰り返す形でプログラムを組み立てる。もちろん途中結果に応じて繰り返し回数を変えたり、処理の内容を変えたりもする。このように処理の手順を克明に指示する方式のものを手続き型プログラム言語procedural programming languageという。
多くのプログラム言語は手続き型プログラム言語である。早くに設計され、いまなお広く使われているものに、科学技術計算用の FORTRAN(フォートラン)、事務処理用の COBOL(コボル)がある。教育目的でつくられたBASIC(ベーシック)は、インタープリター方式で始まったこともあってパーソナルコンピュータ(パソコン)時代にも使われた。システム作成用には、C(シー)言語や C++(シープラスプラス)などが使われている。
処理の手順を指示する手続き型という骨組みそのものが、プログラムをつくる際のむずかしさを増長させているのではないかという疑義から、まったく異なる骨組みをもつプログラム言語も試みられてきた。プログラムを書くのは、目的とする情報処理を行いたいからである。それなら目的とする情報処理そのものを書き表す方式を探ればよい。
ある入力に対して特定の結果を出すというのは、数学でいう関数にほかならない。それなら基本となるいくつかの関数を用意しておき、それらから複雑な関数を組み立てていくための仕組みを提供する。プログラムはこれらを使って目的とする関数を定義する形で書くことにすればよい。この方式のものを関数プログラム言語functional program languageという。その出発は LISP(リスプ、記号処理用プログラム言語の一つ)にみることができるが、代表的な関数プログラム言語には ML(エムエル)がある。
また、入力と出力とがどんな関係にあるか(あってほしいのか)を書くことでプログラムとすることもできる。関係を書き表すには、いわゆる論理演算(「かつ」「または」「ならば」など)を基本とすればよい。この方式のものを論理プログラム言語logic program languageという。論理プログラム言語の代表は、PROLOG(プロローグ)である。
[筧 捷彦]
現実の問題に対処するためのプログラムをつくるにあたって、現実に存在する「もの(オブジェクトobject)」をそのままコンピュータの上に映し込むという発想が有効に機能する。そこで、こうした発想を自然に反映できる形のプログラム言語が生まれてきた。画面上での図形表示を活かした入出力(GUI。graphical user interfaceの略称。グイともいう)が各種プログラムの主流となるにつれて広まった。
オブジェクト指向言語としては、Smalltalk(スモールトーク)がその出発点となった。それぞれの言語がオブジェクト指向の機能を取り入れつつあるが、とくにC++は C言語を出発点として生まれた。Java(ジャバ)は、新しくつくられたオブジェクト指向言語であり、インタープリターを使ってインターネット上の、どのコンピュータでも実行できることを意図してつくられた。
[筧 捷彦]
出典 小学館 日本大百科全書(ニッポニカ)日本大百科全書(ニッポニカ)について 情報 | 凡例
プログラム言語 (プログラムげんご)
programming language
プログラミング言語ともいう。コンピューターに計算したい内容を教えたり,計算の方法を人間どうしで交換したりするのに,それをプログラムの形で記述する。この記述のための規則,文法をもつ体系をプログラム言語という。
数学公式のようなものをプログラム言語とみることもできるが,コンピューターの入力用にはタイプライターかそれに類似のものが使われたから,プログラム言語はタイプライターで表せる文字,数字,記号から構成し,タイプライターで打ちやすいように印字するのがふつうである。計算法を正確に表現できるよう,記述法には自然言語の文法に似た規則がある。多くのプログラム言語では,自然言語で〈かれが何々といった〉とことばの中に別のことばがとり込めるように,プログラムの一部に,大きいプログラムの構造を埋め込むことができる。例えば式3+xのxのところに別の式y-1を埋めて3+(y-1)とできるようにする。
このようなことからプログラムの構成法には,ふつうの言語に特徴的な性質が見受けられるので,プログラム言語という認識が一般的である。初期のプログラムは機械語と対応するアセンブリー言語で書いたから,言語としての性格は弱かったが,FORTRAN(フオートラン)にはじまる高水準プログラム言語では言語的性格がいっそう明確になっている
フォートランの次に登場したALGOL(アルゴル)60からはプログラム言語の記述が洗練され,プログラムでの文字の並べ方(構文規則)は形式言語の手法を使って厳密に規定する。またこうして規定する構文要素のそれぞれ(変数とか添字とか式とか代入文など)に,それに対してコンピューターの内部で生ずる動作(意味)を記述する。
このようなプログラム言語の文法に従って書いたプログラムは,そのままコンピューターに入力し,その処理は処理系に任せる。
プログラム言語の処理系は,その言語の文法とコンピューターの方式に基づいてあらかじめ用意してあるプログラムである。処理方式には翻訳と解釈実行があり,前者の処理系をコンパイラー,後者のそれをインタプリターという。コンパイラーは読み込んだプログラムをそのコンピューターの機械語に変換する。変換でできた機械語のプログラムはそのまま高速で実行される。これに対しインタプリターはそのままの形か,わずかに変換した形で記憶しておき,インタプリターはその記憶してあるプログラムを少しずつ解釈しては実行するものである。解釈実行だとプログラムの同じ部分を何度も解釈する可能性があり,通常,翻訳して直接実行するものよりずっと遅いが,プログラムを実行の途中で加えたり直したりでき融通性に富む。
FORTRAN,PL/I,Cなどの処理系はコンパイラー,BASIC,APL,LISPなどの処理系はインタプリターであることが多い。
プログラム言語のコラム・用語解説
【おもなプログラム言語】
- アセンブラー assembler
- アセンブリー言語で記述したプログラムを機械語に翻訳するプログラム言語処理系。最近のアセンブラーは単に命令コードの置換え,記号番地の計算だけでなく,マクロ機能や条件つきアセンブリー機能の処理など高級になっているものが多い。
- アセンブリー言語 assembly language
- アセンブラー言語ともいう。記憶装置に記憶する機械語はビット列だが,その機械語とほぼ1対1に対応する形でプログラムを書くための言語。命令コードを記憶用略号(ニーモニックという)で書いたり,アドレスを記号番地や十進数で書いたり,作業場所を記憶装置内にとってそれに記号番地をつけたりできるほか,プログラムを機械語に変換する際に必要な各種の機能も備わっているのがふつうである。
- ALGOL(アルゴル)
- algorithmic languageの略。算法記述用言語。IFIP(情報処理国際連盟)のアルゴル作業委員会で設計,保守されている。1960年にALGOL60の初版の報告書が出版され,その後改訂版(1963),修正版(1974)が出版された。同委員会ではALGOL60に続きALGOL68も設計,出版した。
- インタプリター interpreter
- 高水準プログラム言語(ベーシックなど)で記述したプログラムを機械語に変換することなく逐次解釈しながら実行するプログラム言語処理系。起動と同時に実行がはじまるから会話型のプログラムに適しているが,同じプログラムを何回も解釈し直すので実行効率はかなり悪い。
- エーピーエル APL
- a programming languageの略。数式プログラム言語のひとつで,1962年ころ,IBMのアイバーソンKenneth E.Iversonが設計した。数式内のオペレーターを右から左へ実行するのがきわだった特徴で,また使用する特殊文字の多さも目だつ。数列や二次元の表が一度に扱えるため,プログラムが比較的短く書けるので広く使われている。
- 機械語 machine language
- コンピューターが直接実行できる形に表現するプログラム言語。コンピューターの記憶装置に記憶した形を指すときと,それをアセンブリー言語で表現した形のものを指すときとがある。
- 記号処理言語 symbol manipulation language
- 数値計算などに対して,記号の並びの関係,記号のもつ性質などに着目し操作するのを記号処理といい,その処理に適した言語を記号処理言語という。記号または処理対象の構造が一列に並んだものはリストといい,その処理を強調するときはリスト処理言語ということがある。代表的な記号処理言語にはLISP(リスプ),PROLOG(プロローグ)などがある。
- 高級言語
- 高水準プログラム言語ともいう。高級言語で記述したプログラムは結局は機械語に変換したり解釈実行したりしなければならないが,とりあえず,その実行に使う計算機とはまったく独立に,数値計算や記号処理などある範疇(はんちゆう)の問題を解くのに適した抽象的なデータ構造,それらを扱うオペレーション,操作の順を定める制御方式などから定義し,問題解決法の記述,理解を容易にするようくふうしたプログラム言語。
- コンパイラー compiler
- 高水準プログラム言語で記述したプログラムを機械語に変換するプログラム言語処理系。いったん機械語に変換したプログラムは直接実行できるから,インタプリターによる実行より数倍高速で動く。高級なコンパイラーは単に変換するだけでなく,できるだけ能率よいプログラムを作りだすようにいろいろな最適化を行うのがふつうである。
- C(シー)
- 1972年にベル研究所のリッチーDennis M.Ritchieが,PDP-11計算機のオペレーティングシステムであるUNIXのプログラムやその下で動く応用プログラムを書くために開発した。主としてシステムプログラム記述用だから,実行効率のよいプログラムが作れるようくふうしてある。基本はもう一つの言語BCPLだが,それに型の概念をもたせた。多くの前処理機能ももつ。UNIXの普及とともにCもよく使われるようになった。
- PASCAL(パスカル)
- 1971年,チューリヒ工科大学のワースNiklaus WirthがALGOL60を基本とし,プログラム教育と能率のよい処理系作成を目的として設計,処理系を作った。そのバランスのとれた設計感覚のゆえに愛好者が少なくなかったが,最近はパーソナルコンピューターの普及に伴って使える環境が急速に広がった。ISOの規格が82年に制定されている。
- ピーエルワン PL/Ⅰ
- programming language No.1の意味。1960年ころ,IBMの科学用計算機の利用者の会が,アルゴル,コボル,フォートランなどの機能を統合した新言語を企画設計しNPLと名付けた。その後,この開発,保守をIBMがひきつぐことになりPL/Ⅰと改名した。膨大な機能をもつ言語として知られている。
- FORTRAN(フオートラン)
- formula translatorの略。主として数値計算用のプログラム言語。1957年ころ,IBMのバッカスJohn Backusらが,IBM704計算機のために開発した。それまでの機械語プログラムに比べ,数式の形でプログラムできるのが特徴であった。IBM以外の計算機でも処理系が作られ,ISO,JISの規格も制定されている。
- BASIC(ベーシツク)
- beginner's all-purpose symbolic instruction codeの略。1965年ころ,ダートマス大学のケムニーJ.G.Kemenyがジェネラル・エレクトリック社の時分割方式コンピューターシステムのための会話型言語として開発した。非常に簡単な文法をもつ解釈実行型プログラム言語であった。近年の小型コンピューターの出現で再び脚光を浴び,ほとんどのパーソナルコンピューターにこの処理系が備わっている。
執筆者:
和田 英一執筆者:
和田 英一
出典 株式会社平凡社「改訂新版 世界大百科事典」改訂新版 世界大百科事典について 情報
プログラムげんご
プログラム言語
program language
プログラム言語とは,コンピュータに行なわせる処理の手順を記述するものであり,低次のものから高次のものまで種々のレベルがある。プログラム言語で記述されたコンピュータの処理手順がプログラムである。
コンピュータによる処理は中央処理装置central processing unit(CPU)で行なわれるが,CPUへの指示は0-1のビットパターンで与えられる。この0-1のビットパターンで表わされる指示は機械語machine languageとよばれている。CPUに与えられた機械語による指示に応じてCPUの内部状態と出力が決まるが,これらも0-1のビットパターンで表わされる。直接機械語で記述されたプログラムは人間には扱い難いので,人間にとってよりわかりやすい記述を行なうために,個々の機械語による指示を対応する文字列,たとえば二つのビット列の和を取る指示を表わすADDなどで記述するものとしてアセンブリー言語assembly languageが作成された。アセンブリー言語で記述されたプログラムをコンピュータに実行させるときは,対応する機械語による記述に変換したものをCPUに読み込ませる。この変換をコンパイルcompileという。アセンブリー言語は機械語と直接対応する低次の言語であるが,より人間が扱いやすい記述方法による高次の言語は高級言語high-level languageとよばれている。機械語はCPUの種類に応じて異なったものが用意されるが,高級言語は直接機械語と対応するものではなく,異なったCPUに対して共通の言語を用いることができる。高級言語で書かれたプログラムの場合は,その処理を実行するCPUに合わせた機械語にコンパイルされて実行される。現在広く用いられている高級言語として,Cおよびその機能拡張版であるC++(シープラスプラス)がある。Cは,UNIXというオペレーティングシステムOSの開発のために作られたものであるが,UNIX以外のOSでも広く用いられている。1980年代になって,良いプログラムを書くことがより容易に,かつより楽しくなるように,オブジェクト指向プログラムのためのクラス型と,ジェネリックプログラムgeneric programのためのテンプレートtemplateの機能をCに加え,ストラウストラップStroustrup,B.によってC++が開発された(Stroustrup,2000)。また,「ほとんどすべての計算機の上で,適度に効率の良い処理系が実現できるような強力で融通性に富む言語の必要性」から(Jensen,K.,& Wirth,N.,1975),ビルトWirth,N.(1968)によってPascalが開発された。Pascalは,アルゴリズムを表現するための言語あるいは教育用言語として適していると評価された。
高級言語はCPUとは独立に設計できるが,その用途に合わせて種々のものが開発されている。古くは1950年代に科学技術計算のための言語としてFORTRANが開発された。1960年ごろには人工知能や数式処理などの記号処理のためにLISPが開発された。同じ1960年代に学びやすい言語としてBASICが開発されたが,1980年代に普及したマイコンあるいはパソコンで採用され,現在でもWindows OSにおける主要言語の一つとなっている。統計計算用として注目を集めているものにRがある。Rは統計計算とグラフィックスのためのフリーソフトで,そのプログラムが公開されているので,世界中の研究者がプログラムの開発に参加している。
コンピュータに処理させることを文字(テキスト)で記述するプログラム言語は,スクリプト言語scripting languageとよばれることがある。スクリプト言語で記述された処理手続きをスクリプトという。スクリプト言語にはPythonやJava Scriptなどがある。Pythonは,プログラミングの専門家でない人に使ってもらうために開発されたといわれているように,言語としての約束事(文法)が他の言語と比べて簡単になっている。Java Scriptはウェブブラウザ上で実行されるスクリプト言語であり,ホームページの作成において利用されている。
異なる種類のコンピュータ上で同じプログラムを実行するための方法として,プログラムを実行するためのプログラムである仮想マシンvirtual machine(VM)を用意して,そのVM上でプログラムを実行するものがある。たとえば,プログラム言語Javaで書かれたプログラムはJavaVM上で実行されるので,異なったコンピュータに対してそれぞれのJavaVMを用意しておけば,Javaで書かれたプログラムはそれぞれのコンピュータにおけるJavaVMによって実行することができる。
〔岡本 安晴〕
出典 最新 心理学事典最新 心理学事典について 情報
百科事典マイペディア
「プログラム言語」の意味・わかりやすい解説
プログラム言語【プログラムげんご】
プログラミング言語とも。コンピューターに処理したい内容を伝えるには,それをコンピューターが理解できるプログラムの形で記述する必要があるが,その際の規則・文法をもつ体系をいう。初期のプログラムは機械語と対応するアセンブリー言語で書かれたため言語としての側面は弱かったが,FORTRANにはじまる高水準言語では言語的性格がいっそう明確になった。FORTRAN,PL/I,Cなどの処理系はコンパイラーに,ベーシック(BASIC),APL,リスプ(LISP)などの処理系は逐一機械語に翻訳して実行するインタプリターが多い。その他の高水準言語にはAdo,ALGOL,COBOL,LOGO,PASCALなどがある。
→関連項目自然言語処理|人工知能|低水準言語
出典 株式会社平凡社百科事典マイペディアについて 情報
プログラム言語
プログラムげんご
programming language
コンピュータに解釈できるようにつくられた人工言語。コンピュータへの指令であるプログラムを書くのに使われるためプログラム言語あるいはプログラミング言語といわれる。初期にはコンピュータが直接解読して作動することができる機械語が用いられたが,人の使う自然言語とあまりにもかけ離れプログラムの作成効率が悪いため,より自然言語に近くなるようにアセンブラ言語や,人間に理解しやすい記号や代数表現を用いて書ける高級言語が開発された。プログラム言語の設計は一通りではなく,その目的に応じてデータの形式,処理方法,文法などに違いが出てくる。たとえば,計算機のシステムをつくるにはより機械語に近い処理が可能な Cが使われ,科学技術計算には数値の扱いに適したフォートランが使われる。プログラミングの技法に応じて設計される場合も多く,手続き型言語のほか,論理構造を組み立てるのに適した PROLOGなどの論理型言語や関数を組み合わせて新しい関数をつくる LISPなどの関数型言語といった非手続き型言語がある。また,現実の「もの」を中心に考える C++などのオブジェクト指向プログラミング言語(→オブジェクト指向プログラミング)はプログラムの作成効率を上げるのに役立った。機種依存性がない言語である Javaはインターネットに向いていることから世界中に広まった。
出典 ブリタニカ国際大百科事典 小項目事典ブリタニカ国際大百科事典 小項目事典について 情報
プログラム言語
一般にはプログラムを作るための文法を指します。一定のルールと用語を用いて処理内容を書き、それを実行ファイルに変換して利用します。BASIC(ベーシック)、C(シー)言語、Java(ジャバ)などが有名です。
⇨実行ファイル、プログラム、マクロ
出典 (株)朝日新聞出版発行「パソコンで困ったときに開く本」パソコンで困ったときに開く本について 情報
出典 講談社IT用語がわかる辞典について 情報