• ベストアンサー

プログラミング言語は何種類でしょうか?

一度気になるとずっと気になってしまいます。 いわゆるプログラミング言語とは、今現在何種類あるのでしょうか? プログラミング言語自体も作れるのは、知っています。 ある程度知名度があり、いわゆるプログラミング言語でお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.12

言語仕様で分類するなら以下のようになります ・FORTRAN系手続言語(BASIC、VBはここ) ・ALGOLを嚆矢とするWirth先生系の構造化言語(Pascal、Modula2、CやC++、PL/iやAdaもここ) ・COBOLなどのCODASYL系言語(SQLはここ) ・LIspやのような関数系言語、Prologをここに含むかは議論の分かれるところ ・Smalltalkなどのオブジェクト指向言語、Modula-2は難しい ・Occamなどのプロセス制御可能なマルチタスク系言語 ・FORTH/FIFTH/Mindなどの疑似アセンブラ系インタープリタ ・アセンブリ言語(普通はシステム用、Burroughsはシステム言語がAlgolだったけど) ・それぞれのOSでのスクリプト(これは言語とは言わない) #1~#10は言語と処理系の違いを完全に取り違えています、#11の方のお答え以外は意味がないと思いますね。 #11のお答えに私が追加したのプロセス制御だけです。

Oyaji75
質問者

お礼

No11の方の書いているとおり、 >どこで線引きするかの問題もある とは、思います。 私は素人で、処理系の意味をこれから調べる所ですし、どの回答も私には意味があります。 でも、厳密な意味で”言語”と言えば10種に満たない種類と言う事で。 大変詳しい説明、ありがとうございます。

その他の回答 (16)

  • hpsk
  • ベストアンサー率40% (48/119)
回答No.17

No.13=No.4です. >Lispで,プログラマがマクロ定義を追加したものはそれだけで新しい言語というのは新しい言語と、考えられるのでしょうか? No.14の方の補足でその通りなので,繰り返しになってしまいますが,Lispのマクロは非常に強力で,今から書こうとしているLisp言語の拡張が,Lispのプログラム自身でできてしまうのです. 例えば,CLOSというCommon Lispにオブジェクト指向機能を追加したシステムがありますが,こういうものもLisp自身によるライブラリとして実装することが可能です.(同じことをCでやろうとすると,コンパイラを改造するしかないです) 例えとして間違っているかもしれませんが,自然言語でいうと,クラスや関数を追加していくというのは語彙を追加していくこと,マクロは文法規則を変えてしまうことにに相当するでしょうか. なお,できることがLispに比べて非常に限られていることを除けば,C言語のマクロも新しい言語を定義しているといえなくもないです.たとえば,「"=="演算子の代わりに"==="と書くことにしたC言語」というのは#defineでも簡単に作れてしまいますね.

Oyaji75
質問者

お礼

>マクロは文法規則を変えてしまうこと は、想像しなかった訳ではないのですが、知らない私が口をだし、後から見た人が誤解しても、または恥をかくのがイヤだったので、書きませんでした。 >コンパイラを改造するしかない ことができるとなると、ますますLispのマクロはすごい仕組みなのですね。 素人には分からない事を、素人に分かりやすく例える事は難しいと思いますが、平身低頭以外のなにものでもありません。 ありがとうございます。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.16

カッコつきでもRubyをあげるなら、Pythonも挙げないと(笑) 日本での知名度は今ひとつですが、Googleでの公用言語の一つです(他はJavaとC/C++)。 それはともかく、非常にたくさんのプログラミング言語をリストアップ しているところを見つけましたので紹介します。説明文によると約8500個(8512)です。 さすがに8000個を一度に見ることはできないようで、分類ごとの ページから眺めるのが良いかと思います。 The Encyclopedia of Computer Languages http://hopl.murdoch.edu.au/ The Encyclopedia of Computer Languages http://hopl.murdoch.edu.au/tours.prx

Oyaji75
質問者

お礼

>カッコつきでもRubyをあげるなら、Pythonも挙げないと(笑) こういう事で増えていくんです。(笑 やはり細分化し始めると、8000以上はありそうです。 バベルの塔を模しているのは、おもしろいです。 探して頂き、ありがとうございます。

回答No.15

まあ、色々とでていますが、ぶっちゃけた話”一般的”には以下じゃないでしょうか? VisualBasic C C++ C# Java Perl PHP (COBOL) (RUBY) 括弧書きなのはマイナーというか大多数のプログラマがあんまり使わないものです。COBOLは、古いシステムでは使用されていましたが、現在はどうなんでしょうか?私はよく知りませんが、書籍などはほとんどありません。 ここで回答するとここの質問者様たちが詳しすぎるので、私みたいな人間は回答に気後れしてしまうのですが、私並みのプログラマ(世の中のPGの5割)が大半とするならば上記のものをあげるんじゃないでしょうか? UNIXとか使うようになるとまたスクリプトがあるみたいですし、質問者さまがおっしゃるように自分で作ったりする人もたくさんいるみたいですので、数をあげれば切がないとおもいます。 いわゆる、普通の人ではなく”一応”PGの肩書き保持者として回答させていただきました。

Oyaji75
質問者

お礼

私の中では、C、C++、C#はまとめてC系、似ているものでJava。 VisualBasicは、.Netになってよく分かりません。と言うのが実情です。^^; ちなみに、Delphiも忘れてもらっては、全く知りませんがCOBOLユーザーよりは多いはず。 COBOLがでれば、FORTRANも出した方がいいのかな?と。 ちなみに、私の分類ではなんとなく、 Perl、PHPのようなネット(HP)特化系。 VisualBasicやDelphiのような初心者、中級者系。 C系、Javaのプロ系と分かれています。 (注.もちろん、VisualBasicの方が、Cより作りやすいプログラムもあると思うので、初心者系よりプロ系の方がえらいという訳ではありません。) あとは、漠然と古いプログラム。 JavaScriptやVBScript等やシェルスクリプトは、スクリプト系。 データーベース言語。 これにマルチプラットフォームとかVisualに開発ができるとか、コンパイルが必要とか、ジャンルを超えたイメージがくっつくという感じに分けています。 言語の特徴ではなく、コウモリにも羽があるから鳥と同じ空を飛ぶ生き物、といった初心者のイメージの世界ですが。^^; CoolやCurlといった新言語(?)も、生まれているようですし。 今回の質問で、私はいろいろな知識が楽しめました。 何度お礼を書いても書き尽くせません。ありがとうございます。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.14

#11です。 まず自分の発言に補足。 シェルスクリプトやバッチファイルで使うもの…というくだりは、 文字通りシェルスクリプトやバッチファイルを書くのに使っているもの という意味で、その中で呼び出しているものという意味ではないです。 #13の方の発言でちょっと気になったので。 で、Lispのマクロで云々ですが、これはいわゆるDSL(ドメイン特化言語)と 呼ばれるものになると思います。後から後からbuzwordが出てきて質問された方も 大変だとは思いますが(^^;、Lispのマクロというのは大変に柔軟なもので、Cなんかのマクロとは 比べ物にならないくらい強力なんです。 とりあえずDSLの説明とそれを使ったアプローチの説明をしているページの URLを貼っておきます。 Martin Fowler's Bliki in Japanese - ドメイン特化言語 http://capsctrl.que.jp/kdmsnr/wiki/bliki/?DomainSpecificLanguage Martin Fowler's Bliki in Japanese - 言語ワークベンチ http://capsctrl.que.jp/kdmsnr/wiki/bliki/?LanguageWorkbench 自信なしにしてたのは、「数」に関しては何にも答えてなかったからです(笑)。

Oyaji75
質問者

お礼

ちょっとしたノリで聞いただけなのですが、私は無知なので調べる事だけでも、えらい事になってます。(笑 buzzwordも、buzz(騒音)?、word(単語)?も悪口なのかな?とヒヤヒヤです。^^ buzzwordは、専門用語という意味でした。 ドメイン特化言語については、分からない事が分かりました。 検索してもピンとこないので、Lispのマクロについては、クラス、ライブラリを柔軟かつ、超えるもの。 そして、新しい言語という事もできるものと私の中で定義しました。 定義はしましたが、想像できないのですが。 気になるとどうしても、答えを知りたい性分なので。 また、丁寧に解説してくれる回答者にも、感謝しています。 回答も出そろったと思いますが、もうしばらくあけておこうかと思います。

  • hpsk
  • ベストアンサー率40% (48/119)
回答No.13

No.12の方が言語と呼んでいるものは一般には「言語系」呼ぶものではないでしょうか. また,スクリプト言語は明らかにプログラミング言語だと思います(今回のカウントに入れるかは別問題として). 1つの言語とは文法(受理する記号列の集合)とそれに対応するsemanticsの組なので, ・Visual C++(処理系)とBorland C++(処理系)が受理するもの厳密には別の言語(両方ISOの仕様に一応準拠してはいるが,それぞれ独自の仕様を追加した言語になっている.単に実装の仕方が違うだけではない) ・Lispで,プログラマがマクロ定義を追加したものはそれだけで新しい言語(Lispはプログラマ自身が自由に言語を作ることができる言語,とよく言われます). になります. ただ,そんなことを言っていると,少なくともLispプログラムの数だけ言語が存在しますということになってしまうので,適当に制限,同一視をしないと数えてられないということですね(その上で,No.12の方のような同一視の基準を用いてもよいとは思いますが). それで,厳密ではないものの上記の基準を示した上で言語のリストを載せているサイトを見つけたので,参考URLに挙げておきます.No.6の補足の, > こういった基準でそういうのも含めれば、○○数と書いていただけると、 になっていると思います.

参考URL:
http://www.people.ku.edu/~nkinners/LangList/Extras/langlist.htm
Oyaji75
質問者

お礼

あまり優秀な方々同士、口論になって遺恨を残してもらっても後味が悪いのですが、今回の事はプログラミング言語を、私がどうとらえているかを想定して頂いた、または、私が明確な提示ができなかった事で、数に幅が出たのだと思いました。 とはいえ、2,3の回答で締め切らなくてよかったと思っているのも事実です。 あげられたHPでは、Aの行だけで250以上ありました。 そう考えると、1000以上はありそうですね。 ありがとうございます。

Oyaji75
質問者

補足

一つ疑問なのですが、 >Lispで,プログラマがマクロ定義を追加したものはそれだけで新しい言語 というのは新しい言語と、考えられるのでしょうか? (何をプログラミング言語とするかの定義によるとは思いますが。) *----IT用語辞典の抜粋-------* 人工知能研究。 既に定義されている関数を組み合わせて新しい関数を定義するという形でプログラムを記述する。 *--------* 一般的な関数やクラス、ライブラリーとは、趣が違う物なんでしょうか? どんなに斬新なライブラリーやクラスを作っても、新しい言語とは言えないと思うのですが。 少し話しはそれると思いますが、どなたか補足して頂けると、大変助かります。 > こういった基準でそういうのも含めれば、○○数と書いていただけると というのは、別に「言語系で分ければ、10種に満たない。」 分けた理由とその数、説明があれば問題ありません。 もちろん、今回のようにVisual C++(処理系)とBorland C++(処理系)と細部に・厳密に分けて頂いても問題ありません。 素人考えですが、人と猿を同じほ乳類とするか、種としては違うとするかは、どちらも正しい事と考えています。 ただHPでとか、理由もなく○種と書かれるのは、さすがに分かりませんので、補足をお願いすると言う事になります。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.11

どこで線引きするかの問題もあるので、ずばり「xx種類!」と答えるのは多分無理ですが、 大まかに分類すると、 ・Fortranとその眷属 ・COBOLとその眷属 ・Algol(Pascal)とその眷属 ・C (上とまとめられなくもない) ・Lisp を祖とする関数型言語 ・Smalltalkなどのオブジェクト指向言語 くらいになるでしょうか。 この他にも上の範疇に収まらない、たとえばProlog(論理型言語)とか Forth、 最近流行のスクリプティング言語(PerlとかRubyとか)もありますが、 構文などの観点からすればまあどっかに押し込められなくもないので。 で、CとC++は別の言語です。ほとんどの(すべて、ではない)のC プログラムはC++として扱うことができるのでC++コンパイラでコンパイルできます。 共通部分が大きいので、プログラムもひとつにまとめられているということでしょう。 ISO(とかJIS)では、CとC++は別個の言語として別の企画に収められています。 あと、シェルスクリプトやバッチファイルでつかうものは通常は 「プログラミング言語」には含めないことが多いように感じます。 挙げられている言語にちょっと疑問をさしはさみたいところもなくはないのですが、 参考までに主要な言語の歴史的な流れを一枚のpdfにまとめたものがありますので、URLを貼っておきます。pdfファイルへのリンクなので 開くときには注意してください。

参考URL:
http://www.oreilly.com/news/graphics/prog_lang_poster.pdf
Oyaji75
質問者

お礼

・Fortranとその眷属 ・COBOLとその眷属 ・Algol(Pascal)とその眷属 ・C (上とまとめられなくもない) ・Lisp を祖とする関数型言語 ・Smalltalkなどのオブジェクト指向言語 今ある、言語はこれらから発展してきたという事なんでしょうか。 江戸時代の言葉も日本語だし、今の日本語もその流れを組む、と。 今まで、100以上、1000以上の回答もあり、私もそう思っていたのですが、プログラミング言語を分けるとするのなら、原点に戻り、数えるほどになっていくのでしょう。 自信なし、なのがふしぎでなりません。 分かりやすい説明ありがとうございます。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.10

>というのは、コンパイラが複数あると言うことでしょうか? C言語に限定してもMicorsoft、Intel、Boland、GNU C Watcom、LSI C等々の提供元が有ります。

Oyaji75
質問者

お礼

補足からの説明ありがとうございました。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.9

>というのは、下記の例からするとCOBOLとそれに連なる4つの事と思っていいのでしょうか? xxxx が作成したCOBOL言語という事になります。

Oyaji75
質問者

お礼

No13の方のLispの説明をみて、この例え方が分かった気がしました。 >xxxx が作成したCOBOL言語という事になります。 素人考えですが、クラスや関数のようなものを作る事で、制作者独自のプログラミング言語となすことができるって事ですか。 (違っていたらすいません、素人なもので。) という事は、アドレスにのっていた COBOL  COBOL Interpreter  ACUCOBOL-GT  Deskware COBOL Interpreter  PERCobol は、その中で有名な4つって事だと、思いました。 それだと、私は同じ言語と言ってもいいと思います。 あくまで、素人考えですが。 なんども回答ありがとうございます。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.8

プログラム言語の「数」を重視したものと考えて前記 のURLを紹介しました。 はっきり言って8割強は聞いた事も無いものです。 プログラム言語は日本で知られているものが全てでは なく海外では有名なものでも日本では知られていない ものも多数あります。 そういったものも含めるとすれば、 >(・日本語で投稿しましょう) という事はまず無理になります。 >大別して100の言語、それに続くものはその変形・ >発展と思えるのですが。 Visual Basicの様に、言語も動作環境も特定の作成者 (メーカー)のみが作成するといったものではなく COBOLやC言語の様に言語規格が決められていて、複数 の作成者が存在するものもあります。 変形・発展というより作成者(メーカー)の違いによる 実装およびどの規格に準拠するかの差によるものです。 >CとC++を同じ言語とするのか?それとも違う言語と >するのか? xxxx C/C++ となっているコンパイラも多いので同じ ものとしても支障は無いと思いますが?

Oyaji75
質問者

お礼

プログラム言語の「数」をあげるとするのならば、100以上ありそうですね。 英語のHPで、和訳してもどういう基準で分けられているのか、が分からなかったので、大変参考になりました。 どうも一度気になってしまうと、回答者の誰かから明確な答えがないと納得できない性格でして。 ありがとうございます。

Oyaji75
質問者

補足

はい、私もあげられたHPでは知らないものばかりでした。 和訳サイトで和訳してみましたが専門用語が多いのか、うまく和訳できませんでした。回答者様に和訳して欲しいと訳ではありません。 ただ、専門的な方の方が、素人が見るより、正確な回答が望めると思ったから、補足いたしました。 「このHPでは、○○種類あるね。 とりあえず、細かな言語まであげているようだが。」と、2書いていただけると、素人としては、なるほど。と納得できたのですが。 >実装およびどの規格に準拠するかの差によるものです。 というのは、下記の例からするとCOBOLとそれに連なる4つの事と思っていいのでしょうか? COBOL  COBOL Interpreter  ACUCOBOL-GT  Deskware COBOL Interpreter  PERCobol そうだとすると、COBOLを一つのプログラミング言語として数えるのか、この5つを一つのプログラミング言語と考えるのかが、意見が分かれる所だと思います。 >C言語の様に言語規格が決められていて、複数の作成者が存在する というのは、コンパイラが複数あると言うことでしょうか? その場合は、訳する機械が複数あるだけなので、言語としては一つと考えても、素人考えですがいいと思うます。 英訳する際に、人によっては、微妙に言い回しが違っても、英語という文法を使う以上は英語ですし。 C/C++を同じ言語とするのか、それとも別の言語とするのかは、やはり経験者でも、意見の分かれる所なのでしょうか?

  • jppy
  • ベストアンサー率14% (14/99)
回答No.7

私が使う言語なら  ・C言語  ・アセンブラ  ・バッチファイル  ・peggy(エディタ)のMocaScript があればいいので4種類

Oyaji75
質問者

お礼

具体的な回答ではないのですが、あげられた4つは大別すると、この4つになるのでしょうか? そうだとしたら、そう書いていただきたかったです。 回答ありがとうございました。

Oyaji75
質問者

補足

>いわゆるプログラミング言語とは、今現在何種類あるのでしょうか? の問いに4種類は、不適切だと思うのですが。 Perl言語がなければ、大多数の掲示板が動きませんし。 「あなたが使える」ではなく、「世の中にある」というのは、書いていなくても想像することはできると思います。 説明不足で、誤解を生じさせてしまったのなら、申し訳ありません。 回答は「世の中にあるプログラミング言語のだいたいの数と、どういう基準で選んだのか」を教えてください。 どうやら基準により、数が大幅に増減するようなので。 よろしくお願いします。

関連するQ&A