Сравнение языков программирования (esyr) (Сравнение языков программирования)
Описание файла
Файл "Сравнение языков программирования (esyr)" внутри архива находится в папке "Сравнение языков программирования". PDF-файл из архива "Сравнение языков программирования", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Представ иться системестатьяобсуждениеправ итьисторияСравнение Языков ПрограммированияНа этой страничке собираются материалы, которые могут помочь при подготовке к экзамену по языкам программирования.ЯП из курса: 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 аналоги.