|
|
Компьютеры - Сравнение языков программирования22 января 2011
Оглавление: 1. Сравнение языков программирования 2. Типизация 3. Компилятор/интерпретатор 4. Управление памятью 5. Управление потоком вычислений 6. Типы и структуры данных 7. Объектно-ориентированные возможности 8. Функциональные возможности 9. Разное 10. Стандартизация
Условные обозначения |
+ |
Указанная возможность присутствует |
- |
Указанная возможность отсутствует |
+/- |
Возможность поддерживается не полностью |
-/+ |
Возможность поддерживается очень ограниченно |
? |
Нет данных |
x |
Постановка вопроса не применима к языку |
В приведенной ниже таблице отмечено наличие или отсутствие тех или иных возможностей в некоторых популярных сегодня языках программирования. Столбцы упорядочены по алфавиту. Если возможность в языке недоступна напрямую, но может быть эмулирована с помощью других средств, то в таблице отмечено, что её нет.
При заполнении таблицы учтены только фактические данные, при том, что наличие возможности не обязательно является преимуществом языка, а отсутствие недостатком.
Парадигмы
Возможность |
Язык |
Ada |
C |
C++ |
C# |
D |
Eiffel |
Erlang |
Prolog |
F# |
Groovy |
Java |
JavaScript |
Haskell |
Common Lisp |
Nemerle |
Perl |
PHP |
Python |
Ruby |
Scala |
Smalltalk |
Tcl |
VB.NET |
Delphi |
OCaml |
PureBasic |
Императивный |
+ |
+ |
+ |
+ |
+ |
+ |
- |
- |
+ |
+ |
+ |
+ |
+
|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Объектно-ориентированный |
+ |
- |
+ |
+ |
+ |
+ |
-
|
-
|
+ |
+ |
+ |
+
|
-
|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
-/+ |
Функциональный |
- |
- |
+/- |
+/- |
+/- |
+/- |
+ |
+ |
+ |
+ |
- |
+/- |
+ |
+ |
+ |
+ |
+/- |
+/- |
+ |
+ |
+ |
+ |
+/- |
-/+ |
+ |
+/- |
Рефлексивный |
- |
- |
- |
-/+ |
- |
? |
+ |
+ |
-/+ |
-/+ |
-/+ |
+ |
- |
+ |
-/+ |
+/- |
+ |
+ |
+ |
-/+ |
+ |
+ |
-/+ |
-/+ |
- |
? |
Обобщенное программирование |
+ |
- |
+ |
+ |
+ |
+/- |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
- |
+ |
+ |
+ |
-/+ |
Логический |
- |
- |
- |
- |
- |
- |
- |
+ |
- |
- |
- |
- |
+/-
|
+/-
|
+/- |
- |
- |
- |
- |
? |
+/- |
- |
- |
- |
- |
? |
Декларативный |
- |
- |
- |
-/+ |
-/+ |
? |
+ |
+ |
+ |
+ |
- |
+/- |
+ |
+ |
+ |
-/+
|
+ |
+ |
+ |
+ |
+/- |
- |
+/- |
- |
+ |
+/- |
Распределенный |
+
|
+/-
|
+/-
|
-/+
|
- |
+ |
+ |
+ |
- |
-/+ |
+ |
- |
+
|
+/- |
- |
- |
- |
-/+ |
-/+ |
? |
+/- |
? |
- |
- |
- |
- |
|
Ada |
C |
C++ |
C# |
D |
Eiffel |
Erlang |
Prolog |
F# |
Groovy |
Java |
JavaScript |
Haskell |
Common Lisp |
Nemerle |
Perl |
PHP |
Python |
Ruby |
Scala |
Smalltalk |
Tcl |
VB.NET |
Delphi |
OCaml |
PureBasic |
Просмотров: 8463
|