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のお答えに私が追加したのプロセス制御だけです。
No11の方の書いているとおり、
>どこで線引きするかの問題もある
とは、思います。
私は素人で、処理系の意味をこれから調べる所ですし、どの回答も私には意味があります。
でも、厳密な意味で”言語”と言えば10種に満たない種類と言う事で。
大変詳しい説明、ありがとうございます。
No.17
- 回答日時:
No.13=No.4です.
>Lispで,プログラマがマクロ定義を追加したものはそれだけで新しい言語というのは新しい言語と、考えられるのでしょうか?
No.14の方の補足でその通りなので,繰り返しになってしまいますが,Lispのマクロは非常に強力で,今から書こうとしているLisp言語の拡張が,Lispのプログラム自身でできてしまうのです.
例えば,CLOSというCommon Lispにオブジェクト指向機能を追加したシステムがありますが,こういうものもLisp自身によるライブラリとして実装することが可能です.(同じことをCでやろうとすると,コンパイラを改造するしかないです)
例えとして間違っているかもしれませんが,自然言語でいうと,クラスや関数を追加していくというのは語彙を追加していくこと,マクロは文法規則を変えてしまうことにに相当するでしょうか.
なお,できることがLispに比べて非常に限られていることを除けば,C言語のマクロも新しい言語を定義しているといえなくもないです.たとえば,「"=="演算子の代わりに"==="と書くことにしたC言語」というのは#defineでも簡単に作れてしまいますね.
>マクロは文法規則を変えてしまうこと
は、想像しなかった訳ではないのですが、知らない私が口をだし、後から見た人が誤解しても、または恥をかくのがイヤだったので、書きませんでした。
>コンパイラを改造するしかない
ことができるとなると、ますますLispのマクロはすごい仕組みなのですね。
素人には分からない事を、素人に分かりやすく例える事は難しいと思いますが、平身低頭以外のなにものでもありません。
ありがとうございます。
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
>カッコつきでもRubyをあげるなら、Pythonも挙げないと(笑)
こういう事で増えていくんです。(笑
やはり細分化し始めると、8000以上はありそうです。
バベルの塔を模しているのは、おもしろいです。
探して頂き、ありがとうございます。
No.15
- 回答日時:
まあ、色々とでていますが、ぶっちゃけた話”一般的”には以下じゃないでしょうか?
VisualBasic
C
C++
C#
Java
Perl
PHP
(COBOL)
(RUBY)
括弧書きなのはマイナーというか大多数のプログラマがあんまり使わないものです。COBOLは、古いシステムでは使用されていましたが、現在はどうなんでしょうか?私はよく知りませんが、書籍などはほとんどありません。
ここで回答するとここの質問者様たちが詳しすぎるので、私みたいな人間は回答に気後れしてしまうのですが、私並みのプログラマ(世の中のPGの5割)が大半とするならば上記のものをあげるんじゃないでしょうか?
UNIXとか使うようになるとまたスクリプトがあるみたいですし、質問者さまがおっしゃるように自分で作ったりする人もたくさんいるみたいですので、数をあげれば切がないとおもいます。
いわゆる、普通の人ではなく”一応”PGの肩書き保持者として回答させていただきました。
私の中では、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といった新言語(?)も、生まれているようですし。
今回の質問で、私はいろいろな知識が楽しめました。
何度お礼を書いても書き尽くせません。ありがとうございます。
No.14
- 回答日時:
#11です。
まず自分の発言に補足。
シェルスクリプトやバッチファイルで使うもの…というくだりは、
文字通りシェルスクリプトやバッチファイルを書くのに使っているもの
という意味で、その中で呼び出しているものという意味ではないです。
#13の方の発言でちょっと気になったので。
で、Lispのマクロで云々ですが、これはいわゆるDSL(ドメイン特化言語)と
呼ばれるものになると思います。後から後からbuzwordが出てきて質問された方も
大変だとは思いますが(^^;、Lispのマクロというのは大変に柔軟なもので、Cなんかのマクロとは
比べ物にならないくらい強力なんです。
とりあえずDSLの説明とそれを使ったアプローチの説明をしているページの
URLを貼っておきます。
Martin Fowler's Bliki in Japanese - ドメイン特化言語
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Domain …
Martin Fowler's Bliki in Japanese - 言語ワークベンチ
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Langua …
自信なしにしてたのは、「数」に関しては何にも答えてなかったからです(笑)。
ちょっとしたノリで聞いただけなのですが、私は無知なので調べる事だけでも、えらい事になってます。(笑
buzzwordも、buzz(騒音)?、word(単語)?も悪口なのかな?とヒヤヒヤです。^^
buzzwordは、専門用語という意味でした。
ドメイン特化言語については、分からない事が分かりました。
検索してもピンとこないので、Lispのマクロについては、クラス、ライブラリを柔軟かつ、超えるもの。
そして、新しい言語という事もできるものと私の中で定義しました。
定義はしましたが、想像できないのですが。
気になるとどうしても、答えを知りたい性分なので。
また、丁寧に解説してくれる回答者にも、感謝しています。
回答も出そろったと思いますが、もうしばらくあけておこうかと思います。
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/Extr …
この回答への補足
一つ疑問なのですが、
>Lispで,プログラマがマクロ定義を追加したものはそれだけで新しい言語
というのは新しい言語と、考えられるのでしょうか?
(何をプログラミング言語とするかの定義によるとは思いますが。)
*----IT用語辞典の抜粋-------*
人工知能研究。
既に定義されている関数を組み合わせて新しい関数を定義するという形でプログラムを記述する。
*--------*
一般的な関数やクラス、ライブラリーとは、趣が違う物なんでしょうか?
どんなに斬新なライブラリーやクラスを作っても、新しい言語とは言えないと思うのですが。
少し話しはそれると思いますが、どなたか補足して頂けると、大変助かります。
> こういった基準でそういうのも含めれば、○○数と書いていただけると
というのは、別に「言語系で分ければ、10種に満たない。」
分けた理由とその数、説明があれば問題ありません。
もちろん、今回のようにVisual C++(処理系)とBorland C++(処理系)と細部に・厳密に分けて頂いても問題ありません。
素人考えですが、人と猿を同じほ乳類とするか、種としては違うとするかは、どちらも正しい事と考えています。
ただHPでとか、理由もなく○種と書かれるのは、さすがに分かりませんので、補足をお願いすると言う事になります。
あまり優秀な方々同士、口論になって遺恨を残してもらっても後味が悪いのですが、今回の事はプログラミング言語を、私がどうとらえているかを想定して頂いた、または、私が明確な提示ができなかった事で、数に幅が出たのだと思いました。
とはいえ、2,3の回答で締め切らなくてよかったと思っているのも事実です。
あげられたHPでは、Aの行だけで250以上ありました。
そう考えると、1000以上はありそうですね。
ありがとうございます。
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_p …
・Fortranとその眷属
・COBOLとその眷属
・Algol(Pascal)とその眷属
・C (上とまとめられなくもない)
・Lisp を祖とする関数型言語
・Smalltalkなどのオブジェクト指向言語
今ある、言語はこれらから発展してきたという事なんでしょうか。
江戸時代の言葉も日本語だし、今の日本語もその流れを組む、と。
今まで、100以上、1000以上の回答もあり、私もそう思っていたのですが、プログラミング言語を分けるとするのなら、原点に戻り、数えるほどになっていくのでしょう。
自信なし、なのがふしぎでなりません。
分かりやすい説明ありがとうございます。
No.9
- 回答日時:
>というのは、下記の例からするとCOBOLとそれに連なる4つの事と思っていいのでしょうか?
xxxx が作成したCOBOL言語という事になります。
No13の方のLispの説明をみて、この例え方が分かった気がしました。
>xxxx が作成したCOBOL言語という事になります。
素人考えですが、クラスや関数のようなものを作る事で、制作者独自のプログラミング言語となすことができるって事ですか。
(違っていたらすいません、素人なもので。)
という事は、アドレスにのっていた
COBOL
COBOL Interpreter
ACUCOBOL-GT
Deskware COBOL Interpreter
PERCobol
は、その中で有名な4つって事だと、思いました。
それだと、私は同じ言語と言ってもいいと思います。
あくまで、素人考えですが。
なんども回答ありがとうございます。
No.8
- 回答日時:
プログラム言語の「数」を重視したものと考えて前記
のURLを紹介しました。
はっきり言って8割強は聞いた事も無いものです。
プログラム言語は日本で知られているものが全てでは
なく海外では有名なものでも日本では知られていない
ものも多数あります。
そういったものも含めるとすれば、
>(・日本語で投稿しましょう)
という事はまず無理になります。
>大別して100の言語、それに続くものはその変形・
>発展と思えるのですが。
Visual Basicの様に、言語も動作環境も特定の作成者
(メーカー)のみが作成するといったものではなく
COBOLやC言語の様に言語規格が決められていて、複数
の作成者が存在するものもあります。
変形・発展というより作成者(メーカー)の違いによる
実装およびどの規格に準拠するかの差によるものです。
>CとC++を同じ言語とするのか?それとも違う言語と
>するのか?
xxxx C/C++ となっているコンパイラも多いので同じ
ものとしても支障は無いと思いますが?
この回答への補足
はい、私もあげられたHPでは知らないものばかりでした。
和訳サイトで和訳してみましたが専門用語が多いのか、うまく和訳できませんでした。回答者様に和訳して欲しいと訳ではありません。
ただ、専門的な方の方が、素人が見るより、正確な回答が望めると思ったから、補足いたしました。
「このHPでは、○○種類あるね。
とりあえず、細かな言語まであげているようだが。」と、2書いていただけると、素人としては、なるほど。と納得できたのですが。
>実装およびどの規格に準拠するかの差によるものです。
というのは、下記の例からするとCOBOLとそれに連なる4つの事と思っていいのでしょうか?
COBOL
COBOL Interpreter
ACUCOBOL-GT
Deskware COBOL Interpreter
PERCobol
そうだとすると、COBOLを一つのプログラミング言語として数えるのか、この5つを一つのプログラミング言語と考えるのかが、意見が分かれる所だと思います。
>C言語の様に言語規格が決められていて、複数の作成者が存在する
というのは、コンパイラが複数あると言うことでしょうか?
その場合は、訳する機械が複数あるだけなので、言語としては一つと考えても、素人考えですがいいと思うます。
英訳する際に、人によっては、微妙に言い回しが違っても、英語という文法を使う以上は英語ですし。
C/C++を同じ言語とするのか、それとも別の言語とするのかは、やはり経験者でも、意見の分かれる所なのでしょうか?
プログラム言語の「数」をあげるとするのならば、100以上ありそうですね。
英語のHPで、和訳してもどういう基準で分けられているのか、が分からなかったので、大変参考になりました。
どうも一度気になってしまうと、回答者の誰かから明確な答えがないと納得できない性格でして。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java プログラミングのプの字も知りませんが、プログラミングを勉強したいです。とりあえず、学ぶものを決めない 3 2022/11/04 13:10
- HTML・CSS HTML、CSS、JavaScriptはプログラミング言語ですか?マークアップ言語とプログラミング言 3 2022/07/31 13:54
- C言語・C++・C# プログラミング言語「C#」の難易度ってどれくらいですか? 4 2022/05/12 19:15
- その他(ソフトウェア) JavaとOracle Javaって何が違うんですか? 1 2022/05/05 05:46
- その他(プログラミング・Web制作) プログラミング言語やOS、ネットワークに関する知識はその道の仕事に就かなくても役に立ちますか。 理由 6 2022/10/19 19:32
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- C言語・C++・C# C言語 3 2023/07/11 19:55
- HTML・CSS HTMLの・要素・属性・属性値 はプログラム言語の「変数」みたいに変更できますか? 5 2022/10/04 05:27
- 法学 コンピューター プログラミングの言語で記述されたプログラミングのコード一式は、作った人に 著作権があ 4 2023/08/04 17:31
- その他(プログラミング・Web制作) テトリスみたいなゲームを作ってみたいです。 どのプログラミング言語にすればいいでしょうか? 1 2022/05/07 20:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
Pythonって何を意識した言語な...
-
C++ ってなんて読む?
-
プログラムに書かれる"%"記号の...
-
Linuxでシリアル通信(RS232C)...
-
順列の内容をすべて表示するプ...
-
VBScriptで引数を省略したい場合
-
VBSとWSHは読み方が違うだけで...
-
vbaとc言語の関連性について
-
Delphiでプログラム中の表示部...
-
UNITY Float型の接尾辞fって
-
UWSCは何語が使われているので...
-
Delphiの多言語化について
-
C言語とhtmlの違いを どな...
-
「VB」と「VB.NET」の違いについて
-
TO_CHARで小数点以下がある場合...
-
PL/Iソースからのコメント部分削除
-
信号機の動作には、プログラミ...
-
シグナルと例外の違い
-
COBOLで文字タイプを数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
質問失礼します。 プログラム言...
-
最新のプログラム言語を学ぶに...
-
COBOLでのNOT = の AND条件
-
C言語って古いですか?
-
rpa化する言語としてら何があり...
-
UNITY Float型の接尾辞fって
-
TO_CHARで小数点以下がある場合...
-
プログラミング言語の制作方法...
-
COBOLで文字タイプを数字...
-
プログラムに書かれる"%"記号の...
-
C言語とhtmlの違いを どな...
-
Int('1234') で、strをかんたん...
-
C++ ってなんて読む?
-
Excel VBAで文字化けする (英語...
-
C言語 解答について。
-
VBSでDim、Private、Publicの違い
-
Excelの開発言語ってなんですか?
-
C# でソフト開発をした事のある...
-
C#とC++のざっくりとした違いを...
おすすめ情報