2014 Сравнительная таблица ЯП (большая) (Сравнение языков программирования)
Описание файла
Файл "2014 Сравнительная таблица ЯП (большая)" внутри архива находится в папке "Сравнение языков программирования". PDF-файл из архива "Сравнение языков программирования", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Данная таблица является результатом работы компании - avasite, Глотова Жеки, Валуйской Яны, Бротиковской Даны, Ковальчука Саши и Галеева Данилы, а так же википедии, и трудов всех людей, которые делали различного сорта таблицы до насХарактеристикиJavaJavaScriptсис++ + +c#Visual BasicPythonАДА (83/95)Турбо Паскаль + +DelphiMODULA(1/2)Оберон (1/2)Прочие1) Отсутствие пометки не гарантирует отсутствие данного свойства у конкретного языка2) Значение могих характеристик описано в терминологии, в парном файле с теорминомТолько динамическая память+Инициализация переменных +Открытые массивыНету записейНету составного оператораПередача параметров по значениюПередача параметров по ссылкеНету подпрограммного типа данных++ (иммитир)7+ 8-Определение новых тд (модули) ???- (package)Определение новых тд (классы)Не нужно генерить конструктор по умолчанию и пр.+++ (иммитир)++ (иммитир) --+(namespace)++++ + assembly (сборка)1+2+++83+++++22++++++--2+-2---+++++++++-+- [178]+- [182]-+- [149] +- [157]+- [176]-++++ (имитируется) +stl++- [149]+ ++- [158]++- [177]-+ [168]+ [168]+++ [181]++--+ + + - + + + + + + - +Union (как в си)-Размеченное объединениеЗаписьДинамическая строкаПереопределение операторовМакросыШаблоны / (Template - c++ ; Generics - в остальных)Частичная специализация шаблонаПоддержка Unicode в идентификаторахДинамические переменныеИменованные параметрыЗначение парамеров по умолчаниюЛокальные функцииСопоставление с образцомКонтрактное программированиеКонструкция "Свойство" (property)Замещение замещения метода в произвольных классах или наследования классаНе-возможность вызова функции как процедурыreПерегрузка знаков операцийВложенные процедуры и функцииПеременный набор параметров процедур/функцийАтом защитыЯвные терминаторыПереименованиеОхрана типа, Страж типа +ПарадигмыИмперативныйОбъектно-ориентированныйФункциональныйРефлексивныйОбощённое программирование2-2+Неявный импорт имёнЕсть свойстваООЯППерегрузка имён (перекрытие имён)Множественное, модификация прав доступа2-++++ + + -+++-++++ (иммитир)+ +PHP-+2-+2+-2+2+ +--++ ++++ + ++ +++ [152]++++++ [181]+ + + + + -+++++2+ 3- -++++++++ + (generics) ++ [156]+++--+- [172]+++1- 2----2--+ + + + +2+2+22+22+2+2+2+2+22+ + + + + + + ++++ ++++83- 95+++ - + -2+-++++ (иммитир)-2-1(иммитир) 2+22-+ (иммитир)- -Algol60Логическое программированиеДекларативныйРаспределённыйПроцедурный++Модульное программирование+ (иммитир)Расширяющее программированиеКомпонентное программированиеКомпозиционное программированиеПараллельное программированиеТипизацияСтатичекая типизацияДинамическая типизацияЯвная типизацияНеявная типизацияНеявное приведение типов без потери данныхНеявное приведение типов с потерей данныхНеявное приведение типов в неодноначных ситуацияхАлиасы типовВывод типов переменных из инициализатораВывод типов переменных из использованияВывод типов аргументов при вызове методаВывод сигнатуры для локальных функцийПараметрический полиморфизмПараметрический полиморфизм с ковариантностьюПараметрический полиморфизм высших порядковИнформация о типах в runtimeИнформация о типах-параметрах в runtimeКомпилятор / Интерпретаторopen-source компиляторbootstrappingмногопоточная компиляцияИнтерпретация командной строкиУсловная компиляцияinlineСборщик мусораРаздельная компиляцияРаздельная независимая трансляцияЕдиницы компиляцииРаздел интерфейса модуляИмпорт модулейВложенные модулиЭкспорт идентификаторовОграничения видимостиСинонимыДвусторонняя связьРаздельная трансляция вложенных модулейДочерние пакеты+- [11]++ (частично иммитир)+ (иммитир)+ (иммитир)-+ (иммитир)+ (иммитир)+ (иммитир)++- [11]++ (частично иммитир)+ (иммитир)-++++++-++++++-+++++++++- [34]+-++- [17]++- [26]+++++++- [32]++++ [20]++++++++ [41]++- [52] +++++- [47]+ +++++- [47]+ +++++ + + + ++ + (файл) + +++- [7]+- [12]++ (иммитир)+ (иммитир)++-++++++++[10]+++++2+++ (иммитир)+ (иммитир)2++-+ (иммитир)+ (иммитир)-2-++ (иммитир)+ (иммитир)-+++- [27]++- [33]-++- [21]++++++++++- [46]+- [51] +(контролируемый)+ [37]++ +2+22+2+2+ +2+2+22+ +2+ - -2+ 2-2- (иммитир) - -+ +-+++-++++ + + (protected, private) ++++ + (sealed) + (protected, private) +83- 95+п+-+++ + + - + + +2- + + + + + + + + + + ++ + (файл) + + + ++-+ + +Абстрактные типы данныхАбстрактный тип данныхАбстрактные классыАбстрактная функцияВиртуальная функция (метод)Снятие виртуальности (sealed, final)ИнкапсуляцияПолиморфизм+++ +(final) + (protected, private) +-+22-21- 2+ +2+2+-2-2-Наследование + + + + +Конструкторы и Деструкторы+++- + (вызываются явно)sealed (c#), final (java) override (почти замещение)Явная реализация интерфейса + - - + + + - ++++- [65] - ++++- [65] + - ++++ [62]+ ++++ -+ [93] -+++ +-+++ +++++- [87] +Управление памятьюКонстантные выраженияСоздание объектов на стекеНеуправляемые указателиРучное управление памятьюСборка мусораОператор newСтрогие ссылки и указателиУправление потоком вычисленийИнструкция GOTOBreak без меткиBreak с меткойContinueWithподдержка try catch (исключительные ситуации)блок finallyБлок else (для исключений)ПерезапускиЛенивые вычисленияContinuationsЛегковесные процессы (нити)Семантика возобновленияСемантика завершенияСопрограммаТипы и структуры данныхВариант VariantДиапазоныКортежиАлгебраические типы данныхМногомерные масивыДинамические массивыДлинна массива - ТОЛЬКО статический атрибутАссоциативные массивыКонтроль границ массивовЦикл foreachList comprehensionsЦелые числа произволной длинныЦелые числа с контролем границВстроенный тип строк символовБулевый типМножестваНету перечислимого типаФункциональный тип данных1s1u +- [59]- [59]+ + +- [67]+++ +++ [83]+- [96] + +byte- -++++++++- [91]+ - + +- [106] -charuchar+- [101]++ ++ [108]+- [111]+- [115] +stl-charuchar +- [102]++ ++++- [119]+ [121] + +- + + + + +++++- [64] + + ++++ +- [79]-+ + -+++++ [121]-2+2-2-2 - - + +2 +2+ +2 + + +22- 2-2- - + + +- -++++++ + + + ++- [103] + + +2+2+ -2- -22+2++-+- [103]++ + ++++++- + + +--22+2+- +(делегаты)83+ (generic) 95---2-shortintbyteshortintbyte + + +perl +ruby +simula +php2-+- [114]+ + + -sbytebyte +simula67+++- [66] + yield+- [102]++2-- + + (yield, await) - ++- [107] +- [109]+++ [102] + + до 1995 +(через наследование, или анонимные классы)+ - +BYTE-2s2u4s4u8s8ushortintlong-shortushortintuintlong longulong longshortushortintuintlong longulong longshortushortintuintlongulongarrT[] x;int x[N];int x[N];new T [N]arr[]^int x [];int x [];!=*TСсылки!= +!=T*!=T* +!= - (ссылки) ++- [130]-- -++- [129]- - (+ если интерфейсов)+ - (+ если интерфейсов) ++- [134] + + +Объектно-ориентированные возможностиИнтерфейсы (interface)МультиметодыMixinsПереименование членов при наследованииМножественное наследованиеРешение конфликта имён при множественном наследованииДинамическое связываниеРомбовидное наследованиеФункциональные возможностиДекларативные частоты функцийFirst Class FunctionsАнонимные функцииЛексические замыканияЧастичное применениеКаррирование+ [143]-+- [138]-+- [139]+- [145]-integerwordlongint?-smallintwordintegercardinalInt64-SHORTINTINTEGERLONGINT-Type ARR is array (IndexT range L..R) of Tarray [D] of Tarray [D] of TARRAY N OF TType ARR is array (IndexT range <>) of Tarray of Tarray of T?<>^T<>^T +/=access T ++- - (только с 2005)-- - (+ если интерфейсов)++ [133]-2+?(строгие)2- - (+ если - (+ если интерфейсов во интерфейсов)Free Pascal)95+ +++ [141]+--+-+ [140]+ [140]+ [140]----1- 2+ +lisp.