Добавлен: 23.05.2023
Просмотров: 297
Скачиваний: 4
СОДЕРЖАНИЕ
ГЛАВА 1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ СИСТЕМ И ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1 Определение и назначение языков и систем программирования
1.2 Классификация и история развития языков программирования
1.3 Поколения языков программирования
ГЛАВА 2 СОВРЕМЕННЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ
2.1 Модульное, сборочное программирование
2.2 Структурное программирование
2.3 Объектно-ориентированное проектирование (ООП)
2.5 Компонентное программирование
2.6 Аспектно-ориентированное программирование (АОП)
ВВЕДЕНИЕ
Актуальность исследования. В последние годы в программировании четко прослеживалось становление и развитие объектноориентированного проектирования (ООП) программных систем (ПС). Определилась не только технологическая база разработки разных видов ПС, но и инструментальные поддержки (Rational Rose, Rational Software, RUP, Demral , OОram и др.).
Совершенствование ООП достигло такого уровня, что он стал базисом генерирующего (порождающего) программирования, в котором определены пути его развития и устранения ряда недостатков, связанных не только с особенностью проектирования уникальных ООП ПС, но и с отсутствием механизмов использования готовых компонентов, свойств изменчивости, взаимодействия, синхронизации и др.[3] В данном программировании объединены и другие концепции и методы программирования с целью обеспечения инженерии предметной области (ПрО), ориентированной на проектирование семейств ПС из объектов, компонентов, аспектов, сервисов, повторного использования компонентов (ПИК), систем, характеристик и т.п. Все это расширило рамки всех концепций и положило начало объединенной целостной и стройной технологии генерации как отдельных ПС, так и их семейств. Порождающее программирование заложило базис будущего программирования, основанный на современных методах программирования, новых формализмах и объединяющих моделях, посредством которых новое поколение программистов будут создавать более долговечные и качественные программные изделия семейств ПС с использованием конвейерной автоматизации.
Целью данной работы является анализ методов современного программирования, для достижения поставленной цели, были выделены следующие задачи:
- рассмотреть теоретические аспекты систем и языков программирования;
- изучить современные методы программирования.
Объект исследования - методы программирования.
Предмет исследования - современные методы программирования.
Структура работы состоит из введения, основной части, заключения и списка литературы.
Теоретической и методологической базой данной работы послужили труды российских и зарубежных авторов в области информатики, материалы периодических изданий и сети Интернет.
ГЛАВА 1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ СИСТЕМ И ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1 Определение и назначение языков и систем программирования
В процессе своей работы компьютер производит выполнение инструкций различных программ, т.е. набора определённых команд следующих в определённом порядке. Машинная команда, доступная для восприятия и выполнения компьютером, записана в виде двоичного кода, т.е. состоит из нулей и единиц, указывает, какое именно действие должен выполнить центральный процессор. Следовательно, для того чтобы задать компьютеру последовательность действий, необходимых для выполнения, требуется задать последовательность двоичных кодов соответствующих команд. Программы в машинных кодах состоят из сотен и тысяч команд и их написание очень сложный процесс. Программисту требуется знать и помнить комбинацию нулей и единиц двоичного кода каждой программы, а также двоичные коды адресов данных, используемых при её выполнении. Значительно проще для программиста создавать программу на языке близком к естественному человеческому языку, а затем переводить полученный программный код в машинные команды. Перевод текста программы, записанной на языке близком к естественному человеческому языку, производится с помощью специальных программ-трансляторов. При этом перевод программного текста в исполнимый код, записанный на машинном языке, производится по определенным правилам путем сопоставления и дальнейшей замены команды языка программирования на соответствующую ей команду или серию команд на машинном языке.
Таким образом, любой язык программирования – это формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (компьютера).
Язык программирования определяет набор правил, используемых при составлении компьютерной программы. Каждый язык программирования имеет алфавит, словарный запас, свою грамматику и синтаксис, а также семантику.
Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита. Синтаксис языка программирования устанавливает жесткие правила, которым должна удовлетворять запись кода.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных. Другими словами можно сказать, что семантика - совокупность правил, определяющих смысл синтаксически корректных конструкций языка, его содержание. Семантику языка программирования закладывают в его компилятор. Таким образом, синтаксически корректная программа, написанная на языке программирования, после преобразования ее в последовательность машинных команд обеспечит выполнение ЭВМ требуемых операций.
Язык программирования позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах. Алгоритмические конструкции в языке программирования записываются с помощью соответствующих операторов. Информация, подаваемая на вход программе, называется данными.
Языки программирования являются ядром систем программирования.
Система программирования – это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования представляют разработчикам сервисные возможности, необходимые для разработки прикладных и системных программ.
В общем состав систем программирования представляют:
- трансляторы с языков высокого уровня;
- специализированные средства, предназначенные для редактирования, компоновки и загрузки программ;
- макроассемблеры (машинно-ориентированные языки);
- средства отладки программ.
В состав современных систем программирования входят:
- Текстовый редактор (меню Edit), осуществляет функции записи и редактирования исходного текста программы;
- Загрузчик программ (меню File – Open …), позволяет выбирать из директории нужный текстовый файл программы;
- «Запускатель» программ (меню Run);
- Компилятор (меню Compile), предназначен для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и логических ошибок;
- Отладчик (меню Debug), выполняет сервисные функции по отладке и тестированию программы;
- Диспетчер файлов (меню File), предоставляет возможность выполнения операций с файлами: сохранение, поиск, уничтожение и т.д.
Помимо перечисленных традиционных сервисов систем программирования многие системы программирования включают в себя:
- Search – поиск и замена фрагментов в тексте;
- Tools – набор инструментальных программных средств;
- Options – установка опций интегрированной среды;
- Window – работа с окнами.
Современные системы программирования (среды программирования) являются по своей функциональности интегрированными средами разработки IDE - integrated development environment. Самая первая среда разработки была создана для работы с языком программирования Basic.
Различают два класса систем программирования:
- системы программирования общего назначения;
- языково-ориентированные системы (среды) программирования.
Системы программирования
Системы программирования общего назначения
Языково-ориентированные системы программирования
Интерпретирующие и компилирующие системы программирования
Синтаксически-управляемые системы программирования
Рис. 1 Классификация систем программирования
Системы программирования общего назначения содержат набор программных инструментов, поддерживающих разработку программ на разных языках программирования.
Языково-ориентированная система программирования предназначена для поддержки разработки программы на каком-либо одном языке программирования, и знания об этом языке существенно использовались при построении такой системы. Вследствие этого в такой среде могут быть доступны достаточно мощные возможности, учитывающие специфику данного языка. Такие системы программирования разделяются на два подкласса:
- Интерпретирующие и компилирующие системы;
- Синтаксически-управляемые системы программирования.
Интерпретирующие и компилирующие системы программирования имеют встроенный текстовый редактор и обеспечивают трансляцию (интерпретацию или компиляцию) программы, записанной в редакторе, на данном языке программирования.
Синтаксически-управляемая система программирования уже на этапе написания текста программы использует знание синтаксиса языка программирования, на который она ориентирована. В такой системе вместо обычного текстового редактора используется синтаксически-управляемый редактор, позволяющий пользователю использовать различные шаблоны синтаксических конструкций. Результатом применения такого редактора разрабатываемая программа по окончании написания всегда является синтаксически правильной.
1.2 Классификация и история развития языков программирования
Первые языки программирования были очень примитивными и мало чем отличались от формализованных упорядоченных последовательностей единиц и нулей, понятных компьютеру. Такие языки программирования называют «машинными». Использование таких языков было крайне неудобно с точки зрения программиста, так как он должен был знать числовые коды всех машинных команд, должен был сам распределять память под команды программы и данные.
Для того чтобы облегчить общение человека с ЭВМ были созданы машинно-ориентированные языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические (символьные) обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, и отдалился от языка машинных команд.
Следующим этапом развития языков программирования стали языки программирования высокого уровня. Эти языки являются универсальными (на них можно создавать любые прикладные программы) и алгоритмически полными, имеют более широкий спектр типов данных и операций, поддерживают технологии (парадигмы) программирования. Язык программирования высокого уровня - это язык программирования, понятия и структура которого удобны для восприятия человеком и не зависят от конкретного компьютера, на котором будет выполняться программа.
Принципиальными отличиями языков программирования высокого от языков низкого уровня являются:
- использование переменных;
- возможность записи сложных выражений;
- расширяемость типов данных за счет конструирования новых типов из базовых;
- расширяемость набора операций за счет подключения библиотек подпрограмм;
- слабая зависимость от типа ЭВМ.
Одновременно с развитием универсальных языков программирования высокого уровня стали развиваться:
-
- проблемно-ориентированные языки программирования, которые решали экономические задачи (COBOL), задачи реального времени (Modula-2, Ada), символьной обработки (Snobol), моделирования (GPSS, Simula, SmallTalk), численно-аналитические задачи (Analitic) и другие.
- языки сверхвысокого уровня (непроцедурные), при использовании которых программист задает отношения между объектами в программе, например систему линейных уравнений, и определяет, что нужно найти, но не задает, как получить результат.