Сравнение языков программирования (esyr) (1161143)
Текст из файла
Представ иться системестатьяобсуждениеправ итьисторияСравнение Языков ПрограммированияНа этой страничке собираются материалы, которые могут помочь при подготовке к экзамену по языкам программирования.ЯП из курса: C, C++, Java, C#, Pascal, Delphi, Оберон-2, Модула-2, Ада (83 и 95 стандарты).Полезные ссылки:Сравнение ЯП в википедииЭнциклопедия языков программированияКнижка СтрауструпаПлан (краткий, взят из методички Головина, подробный см.
в самой методичке):Содержание [убрать]1 Базисные типы данных в языках программирования: простые и составные типы данных, операции над ними1.1 ADA1.1.1 Поподробнее об Access1.2 ОБЕРОН и ОБЕРОН-21.3 Modula-21.4 Java1.5 C++1.6 C#2 Массивы2.1 Длина массива — статический или динамический атрибут2.2 ОБЕРОН И ОБЕРОН-22.3 Modula-23 Управление памятью3.1 Классы памяти3.2 Указатели4 Преобразование типов4.1 Явное преобразование типов4.2 Неявное преобразование типов4.2.1 Неявное преобразование для пользовательских классов4.3 Понятия conversion и casting4.4 Упаковка и распаковка4.4.1 C#4.4.2 Java4.4.3 Другие языки5 Операторный базис языков программирования. Управление последовательностью вычислений5.1 ADA5.2 ОБЕРОН И ОБЕРОН-25.3 Modula-2open in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.com5.4 Pascal и Delphi5.5 C и C++5.6 for в C# и Java6 Процедурные абстракции6.1 Передача параметров в подпрограммы6.1.1 Передача параметров по значению6.1.2 Передача параметров по ссылке6.1.3 Аргументы в C/C++ всегда передаются по значению6.1.4 Аргументы в Java всегда передаются по значению6.2 Перегрузка операций6.3 ADA6.4 ОБЕРОН И ОБЕРОН-27 Определение новых типов данных.
Логические модули. Классы7.1 ADA7.2 ОБЕРОН И ОБЕРОН-27.3 Modula-27.3.1 Перечислимый тип7.3.2 Тип поддиапазон7.3.3 Записи7.4 Namespace в C#7.5 Классы7.5.1 Конструкторы7.5.2 Деструкторы и финализаторы7.5.3 Неявные контрукторы/деструкторы/операции в C++7.5.4 Свойства7.5.5 Статические классы7.5.5.1 В C++7.5.5.2 В Java7.5.5.3 В C#7.6 Объединение типов (запись с вариантами)7.7 Семантика копирования7.7.1 Особенности копирования объектов в Java8 Модульность и раздельная трансляция8.1 Раздельная трансляция8.2 Модульность8.2.1 ОБЕРОН И ОБЕРОН-28.2.2 Modula-28.3 ADA9 Исключительные ситуации и обработка ошибок9.1 Исключения и блоки try {} catch {} finally {}. Семантика возобновления и семантика завершения.9.2 throw (C++) и throws (Java)9.3 Одно из заданий экзамена по ЯПам9.4 ADAopen in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.com10 Наследование типов и классов10.1 C# и Java10.2 ADA11 Динамический полиморфизм11.1 C#11.1.1 virtual11.1.2 override11.1.3 new12 Абстрактные типы данных, классы и интерфейсы12.1 Абстрактный класс12.2 Абстрактный тип данных12.3 Пример абстрактного ТД и абстрактных функций в Ада9512.4 Интерфейс12.4.1 Явная и неявная реализация интерфейса13 Множественное наследование14 Динамическая идентификация типа14.1 C++14.2 Delphi14.3 C#14.4 Оберон-214.4.1 Проверка типа14.4.2 Охрана типа14.5 Java14.6 ADA15 Понятие о родовых объектах.
Обобщенное программирование15.1 ADA15.2 C#16 Параллельное программирование16.1 ADA16.2 Modula-217 Примеры кода17.1 Примеры кода на Java17.2 Пример кода на Delphi17.3 Примеры на C++, Ада и Java с использованием шаблонов17.4 Примеры кода на С#17.5 Моделирование приватных типов данных из Ады в C++17.6 Эмуляция в Java private и limited private из Ады18 Итоговая таблица19 ПримечанияБазисные типы данных в языках программирования: простые и составные типы данных, операции наднимиopen in browser PRO versionAre you a developer? Try out the HTML to PDF API[править]pdfcrowd.comADA[править]IntegerРазмер не фиксирован.CharacterКак я понял, сущ ествует несколько разновидностей (зависит от размера) и является особым перечислимым типом (Enumeration)StringМассив Character фиксированной длины.
Так же есть стандартные пакеты, реализующ ие строки квазистатической и динамической длины.Floating pointЭти типы обычно определяются вручную в виде конструкции, где Num_Digits указывает максимальную погрешность:digits Num_DigitsFixed PointЭти типы также обычно определяются вручную в виде конструкции, где Delta означает погрешность:delta Delta range Low .. HighBooleanПеречислимый тип с особой семантикой, состоящ ий из значений true и falseAccessТип указателя в языке ADA, с некоторой своей особой семантикой.
В отличие от других языков (таких как C/C++) тип Access может указывать только наобъекты в динамической области памяти. Кроме того этот тип лишен адресной арифметики. Эти два факта якобы позволяют избежать ошибок, связанных суказателями в С/С++. Однако, тип Access в Аде не лишен проблем висячих ссылок и мусора, ситуаций из-за которых возникает подавляющ ее количествоочень неприятных ошибок в языках C/C++.
Однако стоит отдать должное языку Ада: большинство ситуаций, в которых можно использовать адрес, зачастуюрешаются другими способами.use Smth_Package.Entity;type Entity_Access is access Entity;A1, A2 : Entity_Access;beginA1:= new Entity;A1:= new Entity; -- Образовался мусорA2:= A1;Free_Entity (A1); -- A1 теперь null-- A2 теперь - висячая ссылкаendПоподробнее об Access[править]Здесь будем пользоваться следующ им примером:type Person is recordFirst_Name : String (1..30);Last_Name : String (1..20);end record;type Person_Access is access Person;Так как в Аде указатели могут указывать на объекты только из динамической памяти, тип Access очень тесно связан с кучей (в Аде вместо понятия кучиopen in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.comиспользуется понятие пула). Такая связь позволяет для каждого типа объекта держать свой отдельный пул, который может управляться программистом,например можно вручную изменять размер пула:for Person_Access'Size use New_Size; -- 0 запрещает создание новых объектов в пулеСоздадим пару экземпляров нашей структуры:Father: Person_Access := new Person;Mother: Person_Access := new Person'(Mothers_First_Name, Mothers_Last_Name);-- неинициализовано-- инициализованноТип Access - это высокоуровневый указатель, представленный записью с полями.
Например, разыменовать указатель можно следующ им образом:Mother.all.Last_Name = Father.all.Last_Name -- здесь, Mother.all имеет тип Person;Кроме того типы указателей различаются уровнями доступа (read-only и read-write):type Person_Read_Access is access constant Person; -- read-onlytype Person_RW_Access is access all Person; -- read-writeКроме оператора new в пуле переменные можно размещ ать модификатором aliased (у таких переменных есть атрибут 'Access):Child: aliased Person;Child_Access: Person_Access := Child'AccessЕсть ещ е очень много интересного по этой теме.
Все было взято тут .ОБЕРОН и ОБЕРОН-2[править]ОтличияВ Оберон-2 добавленысвязанные с типом процедуры;экспорт только для чтения;открытые массивы в качестве базового типа для указателей;оператор with с вариантами;оператор for.Основные типы1. BOOLEAN логические значения TRUE и FALSE2. CHAR символы расширенного набора ASCII (0X .. 0FFX)3. SHORTINT целые в интервале от MIN(SHORTINT) до MAX(SHORTINT)4. INTEGER целые в интервале от MIN(INTEGER) до MAX(INTEGER)5. LONGINT целые в интервале от MIN(LONGINT) до MAX(LONGINT)6.
REAL вещ ественные числа в интервале от MIN(REAL) до MAX(REAL)7. LONGREAL вещ ественные числа от MIN(LONGREAL) до MAX(LONGREAL)8. SET множество из целых от 0 до MAX(SET)open in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.comТипы от 3 до 5 - целые типы, типы 6 и 7 - вещ ественные типы, а вместе они называются числовыми типами.
Эти типы образуют иерархию; больший тип поглощ аетменьший тип:LONGREAL >= REAL >= LONGINT >= INTEGER >= SHORTINTПримеры объявлений переменныхi, j, k: INTEGERa: ARRAY 100 OF REALОперации+, -, *, /, DIV, MODОперации над множествами+ объединение- разность (x - y = x * (-y))* пересечение/ симметрическая разность множеств (x / y = (x-y) + (y-x))Отношения=, # (неравенство), <, <=, >, >=, IN (принадлежность множеству), IS (проверка типа)Пример присваиванияi := 0Тип ЗаписьRECORDday, month, year: INTEGERENDModula-2[править]Порядковые: CARDINAL CHAR INTEGER BOOLEANБитовое множество BITSET (Величина может зависеть от реализации. Например, 32 бита)Плавающ ая точка: REAL LONGREAL (Подчиняются IEEE, но зависят от реализации.
К примеру, возможно REAL = LONGREAL = double)Процедурный тип PROCJava[править]Java — это язык со статической типизацией. Это значит, что каждой переменной и каждому выражению соответствует тип, известный на этапе компиляции.Типы подразделяются на две категории (если не считать null, см. чуть дальше).Примитивные (primitive) типы:boolean (true или false)Числовые типы:Целые числа:Знаковые: byte, short, int, long (8-, 16-, 32-, 64-битные).Беззнаковый 16-битный: char (код символа в UTF-16[1]).open in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.comЧисла с плавающ ей точкой: float, double (32-, 64-битные; IEEE 754).Ссылочный (reference) тип:Классы, интерфейсы, массивы.Также сущ ествует специальный тип null.Объектом в Java считается экземпляр класса или массив.
Значением ссылочного типа является ссылка на объект (или специальное значение null). Значениепеременной ссылочного типа можно изменить, в отличии от C++.Все объекты (включая массивы) обладают методами класса Object (java.lang.Object) (иначе говоря, с т. з. Java-программиста все объекты *наследуют* методыкласса Object). Строковые литералы (например, "Hello world!") являются объектами типа String (иначе говоря, экземплярами класса String).Операции над простыми типами почти идентичны C/C++, однако могут выбрасывать исключения. Конкатенация строк: "Hello " + "world!" (может принимать вкачестве одного из аргументов не только строку, но и любой из целых типов).Больше информации о типах, значениях и переменных: http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.htmlC++.[править]Целые типыchar - размер как для хранения символа, определяется машиной (обычно байт)short - размер, соответствующ ий целой арифметике на данной машине (обычно, слово)intlonglong longДля всех целых типов есть unsigned аналоги.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.