出典: フリー百科事典『ウィキペディア(Wikipedia)』
プログラミング言語の比較 (プログラミングげんごのひかく)では、プログラミング言語 の比較をする。
プログラミング言語は機械(またはコンピュータ)を制御するために使用される。プログラミング言語も自然言語のように意味を定義するために構文的、意味的な規則を使用する。
現在何千ものプログラミング言語 があり、毎年新しいものが作られているものの、ほとんどの言語は一般的にはなっていない。しかし、多くの職業プログラマが生涯の間に何十もの異なった言語を使用している。
全体の比較
以下の表は主要なプログラミング言語の全体的および技術的な情報を比較している。詳細は個々の言語のページを参照のこと。
言語
一般的な実行モデル
影響を受けた言語
プログラムパラダイム
型付け
登場時期
Ada
ネイティブ
Algol , Pascal , C++ (Ada 95), Smalltalk (Ada 95)
並行性 , 分散コンピューティング , ジェネリック , 命令型 , オブジェクト指向
宣言型の安全な 強い 静的型付け
1983
C
ネイティブ
Algol , B
命令型
安全でない 弱い 静的型付け
1973
C++
ネイティブ
C , Simula , Algol 68
命令型 , オブジェクト指向 , ジェネリック
宣言型の安全でない 強い 静的型付け
1980
C#
JIT
Delphi , Java , C++ , Ruby
命令型 , オブジェクト指向 , ジェネリック , マルチプラットフォーム
強い 安全である/ない静的型付け
2000
COBOL
ネイティブ
FLOW-MATIC , COMTRAN
命令型 , オブジェクト指向
弱い /強い 型付け
1959
ColdFusion
JIT
HTML
手続き型 , 関数型 , オブジェクト指向
弱い 動的型付け (ダック・タイピング)
1995
Common Lisp
ネイティブ
LISP , Smalltalk
命令型 , 関数型 , オブジェクト指向
安全で 強い 動的型付け
1984
D
ネイティブ
C , C++ , Java , C#
命令型 , オブジェクト指向 , ジェネリック , 契約プログラミング
強い 型付け
2000
Eiffel
ネイティブ
Ada , Simula
オブジェクト指向 , ジェネリック
宣言型の安全な 強い 静的型付け , 契約プログラミング
1985
Erlang
ネイティブ
Prolog , Ericsson Pascal , CSP
関数型 , 並行性 , 分散コンピューティング , マルチプラットフォーム
弱い 動的型付け
late 1980s
Forth
インタプリタ / ネイティブ
無し
命令型 , スタック指向
型無し
1977
Fortran
ネイティブ
無し, Algol (FORTRAN 77以降)
命令型 , 手続き型 , オブジェクト指向
宣言型の安全な 強い 静的型付け
1957
Java
インタプリタ / JIT
C++ , Objective-C , C# [1]
命令型 , オブジェクト指向 , マルチプラットフォーム , ジェネリック
強い 静的型付け
1994
JavaScript
インタプリタ
C , Self , awk , Perl
命令型 , オブジェクト指向 , 関数型
弱い 動的型付け
1995
Haskell
インタプリタ / ネイティブ
Miranda , ML
関数型 、ジェネリック
強い 静的型付け 言語、型推論
1998
Mathematica
インタプリタ
LISP
関数型 , 手続き型
強い 動的型付け
1986
Objective-C
ネイティブ
C , Smalltalk
命令型 , オブジェクト指向
強い 動的 /静的型付け
1986
Objective Caml
インタプリタ / ネイティブ
ML , LISP
オブジェクト指向 , 関数型 , 命令型 , ジェネリック
構造型の安全で 静的型付け 、型推論
1996
Object Pascal
ネイティブ
Pascal
命令型 , オブジェクト指向
宣言型の安全で (ただし安全でない のも許可してる)強い 静的型付け
1985
Perl
JIT
C , shell , AWK , sed , LISP
関数型 , オブジェクト指向 , 手続き型
弱い 動的型付け
1987
PHP
インタプリタ
Perl , C
命令型 , オブジェクト指向
弱い 動的型付け
1995
Prolog
インタプリタ
PLANNER , LISP
論理型
安全で 強い 動的型付け (単一化)
1972
Python
インタプリタ
ABC , Perl , Modula-3
命令型 , オブジェクト指向 , 関数型
強い 動的型付け (ダック・タイピング)
1991
Ruby
インタプリタ
Perl , Smalltalk , LISP ,CLU
命令型 , オブジェクト指向 , 関数型
強い 動的型付け (ダック・タイピング)
1995
Scala
インタプリタ / ネイティブ
Java
オブジェクト指向 , 関数型 , ジェネリック
強い 静的型付け 、部分的な型推論
2003
Scheme
インタプリタ / ネイティブ
LISP , Algol 60
関数型
動的型付け
1975
Smalltalk
JIT
Sketchpad , Simula
オブジェクト指向 , 関数型 , 並列コンピューティング , イベント駆動型 , 命令型 , 宣言型
安全で 強い 動的型付け , ダック
1971
Visual Basic
ネイティブ
QuickBASIC
コンポーネント指向 , イベント駆動型
宣言型の安全で 弱い /強い 静的 /動的型付け
1991
Visual Basic .NET
JIT
Visual Basic
オブジェクト指向 , イベント駆動型
強い 静的型付け
2001
構文の表現
言語
文の種類の比[2]
行の比[3]
C
1
1
C++
2.5
1
Fortran
2.5
.8
Java
2.5
1.5
Perl
6
6
Python
6
6.5
Smalltalk
6
.625
MS Visual Basic
4.5
?
プログラミング言語に関する文献はそれらの相対的な表現力に関して多くのくだけた主張を含んでいるものの、文やおもしろい結果を引き出すための一定の形の枠組みがない。[4] この図は2つの異なったソースからの表現力測定を提供する。表現力測定に追加でGzip bytesで比較するツールがComputer Languages Shootout にある。
脚注
^ Java 5.0 では、いくつかの機能(Foreach文 、オートボクシング 、可変引数 、アノテーション 、列挙型 )が C# のようなライバル言語で有効性が証明されてから追加された。[1] [2] [3]
^ コードコンプリート のデータから。 文の種類の比は column "shows typical ratios of source statements in several high-level languages to the equivalent code in C. A higher ratio means that each line of code in the language listed accomplishes more than does each line of code in C.
^ The ratio of line count tests won by each language to the number won by C when using the Compare to feature at http://shootout.alioth.debian.org/debian/c.php . Last updated May, 2006. C gcc was used for C, C++ g++ was used for C++, Fortran G95 was used for Fortran, Java JDK Server was used for Java, and Smalltalk GST was used for Smalltalk.
^ On the Expressive Power of Programming Languages 、Matthias Felleisen、ESOP '90 3rd European Symposium on Programmingより。