2014 Сравнительная таблица ЯП (большая) (1161137)
Текст из файла
Данная таблица является результатом работы компании - 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.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.