Сравнение Языков Программирования
Материал из eSyr's wiki.
(→Процедурные абстракции) |
(→Перегрузка операций) |
||
Строка 27: | Строка 27: | ||
языках программирования перегружаться могут только имена подпрограмм, | языках программирования перегружаться могут только имена подпрограмм, | ||
но не типов, переменных, модулей. | но не типов, переменных, модулей. | ||
+ | Пример на языке Си++: | ||
+ | class X { | ||
+ | public: | ||
+ | void f(); | ||
+ | void f (int) | ||
+ | }; | ||
+ | |||
+ | X a; | ||
+ | a.f(); // первая функция | ||
+ | a.f(0); // вторая функция | ||
+ | |||
+ | Отличие перегрузки от замещения состоит во-первых, в том, что | ||
+ | перегрузка обрабатывается статически (на этапе трансляции), в во-вторых, | ||
+ | при замещении речь идет о разных областях видимости: базовый класс с | ||
+ | объявлением виртуального метода (объемлющая область видимости) и | ||
+ | производный класс с замещающим методом (вложенная область видимости). | ||
== Определение новых типов данных. Логические модули. Классы == | == Определение новых типов данных. Логические модули. Классы == |
Версия 18:04, 12 января 2013
На этой страничке собираются материалы, которые могут помочь при подготовке к экзамену по языкам программирования.
ЯП из курса: C, C++, Java, C#, Pascal, Delphi, Оберон-2, Модула-2, Ада (83 и 95 стандарты)
Полезные ссылки:
Энциклопедия языков программирования
План (краткий, взят из методички Головина, подробный см. в самой методичке):
Базисные типы данных в языках программирования: простые и составные типы данных, операции над ними
Массивы. Длина массива - статический или динамический атрибут.
Управление памятью (ручное или сборщик мусора, выделение памяти для объектов), указатели.
Операторный базис языков программирования. Управление последовательностью вычислений
Процедурные абстракции
Перегрузка операций
Ада 83, Ада 95, Си++, Java, Delphi, C#
Понятие «перегрузка» означает, что одному имени в одной области видимости может соответствовать несколько определений. В современных языках программирования перегружаться могут только имена подпрограмм, но не типов, переменных, модулей. Пример на языке Си++:
class X { public: void f(); void f (int) }; X a; a.f(); // первая функция a.f(0); // вторая функция
Отличие перегрузки от замещения состоит во-первых, в том, что перегрузка обрабатывается статически (на этапе трансляции), в во-вторых, при замещении речь идет о разных областях видимости: базовый класс с объявлением виртуального метода (объемлющая область видимости) и производный класс с замещающим методом (вложенная область видимости).
Определение новых типов данных. Логические модули. Классы
Инкапсуляция и абстрактные типы данных
Модульность и раздельная трансляция
Исключительные ситуации и обработка ошибок
Исключения и блоки try {} catch {} finally {}. Семантика возобновления и семантика завершения.
Семантика возобновления: после обработки исключения управление может вернуться непосредственно в точку, где возникло исключение (варианты: на следующий оператор или на любой оператор из того же блока). Пример языка c семантикой возобновления: Visual Basic.
Семантика завершения: после возникновения исключения блок, в котором оно возникло, обязательно завершается. Обработка исключения происходит в блоках, вызвавших блок с исключением. Пример языка с семантикой завершения: Си++.