Главная » Просмотр файлов » Сравнение языков программирования (esyr)

Сравнение языков программирования (esyr) (1161143), страница 5

Файл №1161143 Сравнение языков программирования (esyr) (Сравнение языков программирования) 5 страницаСравнение языков программирования (esyr) (1161143) страница 52019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Это всё, что после begin.package body Points isprocedure setToZero(point: in out Point) isbeginpoint := zero;end setToZero;function dotProduct(point1: in Point; point2: in Point) return Integer isbeginreturn point1.x * point2.x + point1.y * point2.y;end setToZero;beginAda.Text_IO.Put_Line("Package ready!");end Points;Пакеты можно расширять. Взять и определить пакет Points.RandomDistributions, в нём можно пользоваться всем, что объявлено в пакете-родителе.

Пакет можносделать недоступным вне своей иерархии.private package Points.internalThing is<...>При подключении потомка родитель-пакет подключается автоматически.О подключениях. Подключить пакет можно с помощ ью конструкции with.with Points.RandomDistributions;После этого можно будет пользоваться ввсем, что в пакете лежит, через точечную нотацию. Если же вызовов слишком много, то можно влить содержимое пакетав текущ ую область видимости с помощ ью use (только после подключения!).use Points.RandomDistributions;В случае конфликтов имён придётся-таки предварять каждое обращ ение именем пакета.ОБЕРОН И ОБЕРОН-2[править]В Обероне-2 стандартная процедура NEW используется, чтобы распределить блоки данных в свободной памяти. Нет, однако, никакого способа явно освободитьраспределенный блок.

Взамен Оберон-среда использует сборщ ик мусора чтобы найти блоки, которые больше не используются и сделать их снова доступнымидля распределения.Расширение типовНаиболее важным добавлением(от-но Modula-2) является механизм расширенных типов записи. Он позволяет конструировать новые типы на основе ужесущ ествующ их и задает определенную степень совместимости между новыми и старыми типами. Предположим, что у нас имеется типT = RECORD x,y: INTEGER ENDopen in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.comВ дополнение к сущ ествующ им полям могут быть заданы новые:T0 = RECORD (T) z: REAL ENDT1 = RECORD (T) w: LONGREAL ENDЗдесь определяются типы с полями x,y,z и x,y,w соответственно. Мы говорим, что тип T’T’ = RECORD (T) <описание_полей> ENDявляется (прямым) расширением типа T, и наоборот, T называется (прямым) базовым (base) типом для T’.Modula-2[править]Перечислимый тип[править]TYPE DaysOfWeek = (sunday, monday, tuesday, wednesday, thursday, friday, saturday);(* тогда ORD(friday) = 5, MAX(DaysOfWeek) = saturday *)Тип поддиапазон[править]TYPE SubType = [min ..

max];Дополнительно можно указывать хостовой типTYPESubType1 = [0..7]; (* host type is CARDINAL *)SubType2 = INTEGER [0..7]; (* host type is INTEGER *)WeekDays = [mon .. fri]; (* host type is DaysOfWeek *)Говорят, что тип Т1 совместим с типом Т0, если либо он описан как Т1 = Т0, либо как диапазон Т0, либо если Т0 является диапазоном Т1, либо если и Т0, и Т1 оба диапазоны одного и того же (базового) типа.Записи[править]Как в Паскале.TYPEmyRec = RECORDval1: type1;valn: typen;END;Namespace в C#[править]Ключевое слово namespace используется для объявления области, которая содержит набор связанных объектов. Можно использовать пространство имён дляорганизации элементов кода, а также для создания глобально уникальных типов.namespace SampleNamespace{open in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.com{class SampleClass { }interface SampleInterface { }struct SampleStruct { }enum SampleEnum { a, b }delegate void SampleDelegate(int i);}namespace SampleNamespace.Nested{class SampleClass2 { }}Классы[править]Конструкторы[править]Обычно выделяют следующ ие типы конструкторов: конструктор по умолчанию, конструктор копирования и конструктор преобразования.

Конструкторы имеютпользовательскую (тело объявленного конструктора) и системную (сгенерированный код) части.Деструкторы и финализаторы[править]Деструкторы и финализаторы — это специальные функции-члены класса, автоматически вызываемые при уничтожении объекта класса. Роль деструкторов ифинализаторов — освобождение захваченных объектом ресурсов. Если объект не захватывает ресурсы или ресурсы освобождаются автоматически, то нужды вдеструкторе (финализаторе) нет. Деструкторы не имеют параметров. В языке Java деструкторов нет, их роль (до определенной степени) играет метод void finalize()— финализатор.

В языке C# формально деструкторы есть, однако их поведение аналогично поведению финализаторов в языке Java. Деструкторы в C++отличаются от финализаторов в Java и C# тем, что в C++ можно достаточно точно установить момент вызова деструктора.1. Деструкторы статических объектов вызываются после выхода из функции main.2. Деструкторы квазистатических объектов выполняются при выходе из блока.

Причём, деструкторы вызываются строго в обратном порядке относительнопорядка вызова конструкторов квазистатических объектов данного блока.3. Деструкторы динамических объектов выполняются при вызове операции delete.4. Деструкторы временных объектов выполняются при выходе из конструкции, в контексте которой был создан объект.В Java и C# время вызова финализатора не определено из-за наличия сборщ ика мусора. Как и конструкторы, деструкторы имеют пользовательскую и системнуючасти.Неявные контрукторы/деструкторы/операции в C++[править]Следующ ие элементы класса могут быть определены неявно:Конструктор по умолчанию (если нет ни одного явно определённого конструктора).Конструктор копирования (если конструктор копирования не описан явно).

Осущ ествляет т.н. поверхностное копирование полей класса (бит в бит).Деструктор (если деструктор не описан явно). Вызывает деструкторы объектов-полей (не полей-указателей!).Операция присваивания (если не определена явно). Записывает значения полей объекта-аргумента в целевой объект (тоже поверхностное копирование),возвращ ает ссылку на целевой объект.Фишки:Запрет копирования объекта: определить конструктор копирования в приватной части класса.Запрет создания экземпляровобъекта — глобальных и локальных переменных, иначе говоря данные запрещ ено размещ ать в секциях .data/.bss и на стеке,open in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.comразрешено только в динамической памяти.

Нужно определить декструктор в приватной части класса. Освобождение ресурсов объекта при таком подходеосущ ествляется через метод данного класса.Запрет присваивания одного объекта другому: определение операции присваивания в приватную часть класса.Запрет неявного вызова конструктора копирования, конструктора преобразования (иначе говоря, конструкторов с одним параметром) или операциипреобразования (последнее — только в C++11). Нужно добавить в начало заголовка ключевое слово explicit.Свойства[править]В C# и Delphi есть поддержка свойств (property).Свойство - способ доступа к внутреннему состоянию объекта, имитирующ ий переменную некоторого типа.

Обращ ение к свойству объекта выглядит так же, как иобращ ение к структурному полю (в структурном программировании), но, в действительности, реализовано через вызов функции. При попытке задать значениеданного свойства вызывается один метод, а при попытке получить значение данного свойства — другой.Свойства повышают гибкость и безопасность программирования, поскольку, являясь частью (открытого) интерфейса, позволяют менять внутреннюю реализациюобъекта без изменения его свойств. Свойства предназначены для того, чтобы свести программирование к операциям над свойствами, скрывая вызовы методов.Свойства в C# — поля с логическим блоком, в котором есть ключевые слова get и set.class MyClass{private int p_field;public int Field{get{return p_field;}private set{p_field = value;}}}Для описания свойства в Delphi служит слово property.TMyClass = classprivateFMyField: Integer;procedure SetMyField(const Value: Integer);function GetMyField: Integer;publicproperty MyField: Integer read GetMyField write SetMyField;end;function TMyClass.GetMyField: Integer;beginResult := FMyField;end;procedure TMyClass.SetMyField(const Value: Integer);beginFMyField := Value;end;Статические классыopen in browser PRO[править]Статический класс — это, в общ ем случае, достаточно неформальное понятие.

Обычно так называют класс, все члены которого объявлены статическими. Дляработы с таким классом не требуется создавать экземпляр и часто, говоря о статическом классе, подразумевают невозможность создания экземпляра. Такойversion Are you a developer? Try out the HTML to PDF APIpdfcrowd.comкласс, как правило, не имеет конструкторов и деструкторов, либо они объявлены приватными (в зависимости от языка).[6]Иногда понятие статического класса закрепляется на уровне языка программирования. В этом случае язык добавляет некоторые требования, кроме статичностивсех членов и невозможности создания экземпляров: например, невозможность наследования от данного класса или невозможность реализации таким классоминтерфейса (см.

далее про C#).Следует понимать, что в контексте разных языков программирования могут подразумеваться разные понятия статического класса, разной степени формальности(вплоть до строго закреплённого языком понятия).В C++[править]В C++ понятие статического класса отсутствует. Для реализации статического класса нужно объявить члены класса статическими (static) и запретить создание егоэкземпляров, поместив конструктор по умолчанию и конструктор копирования в приватную (private) часть класса (а по-хорошему, ещ ё и деструктор). Похожихсвойств можно добиться, используя шаблон проектирования singleton — для класса-singleton'а будет сущ ествовать ровно один экземпляр данного класса.В Java[править]В Java также нет понятия соответствующ его статическому классу в данном выше понимании (статические вложенные классы — совершенно другая вещ ь, о нихдалее в этом разделе). Ситуация аналогична ситуации в C++. Для реализации статического класса нужно объявить все члены статическими (static) и запретитьсоздание его экземпляров, объявив конструктор приватным (private).

Характеристики

Тип файла
PDF-файл
Размер
597,43 Kb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Сравнение языков программирования
Сравнение_языков_программирования_files
ClickTracking.js
CollapsibleTabs.js
ajax.js
centralnotice.js
combined.css
commonPrint.css
flaggedrevs.css
flaggedrevs.js
index.css
index.php
index_002.css
index_003.css
index_004.css
index_005.css
injection_graph_func.js
injection_nh_graph.css
jquery-ui-1.css
js2.js
main.css
main_002.css
mwsuggest.js
plugins.js
shared.css
skypeplugin_dropdownmenu.css
wikibits.js
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее