Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЯП-Лекция 01.docx
Скачиваний:
28
Добавлен:
11.06.2015
Размер:
3.67 Mб
Скачать

2.3. Основные принципы технологии программирования

Технология программирования выработала целый ряд методологий, позволяющих сделать процесс размышления над задачей, алгоритмом её решения и реализующей этот алгоритм программой более целенаправленным и эффективным. Главные принципы этих методологий стары, как мир. Это

принцип декомпозиции, разбиения целого на составные части, задачи на подзадачи, цели на подцели, сложного действия на более простые операции, и

принцип постепенности, требующий выделения более простого ядра задачи, разработки и реализации его решения и последующего постепенного развития проекта до полного решения задачи.

Освоение применения этих принципов в программировании должно проходить в процессе создания программ, тем более что важнейшие их положения нашли отражение в структуре языков программирования и поддерживающих их инструментальных средств.

3. Основные понятия программирования

Информационная модель задачи – структурированное описание объектов предметной области, их свойств и связей, имеющих отношение к поставленной задаче, а также саму постановку задачи. В процессе постановки задачи и проектирования решающей её программы информационная модель проходит разные стадии формализации и детализации, пока не находит полностью формализованное представление в исходных и результирующих структурах данных программы.

Алгоритм– это конечноеописаниепорядка выполнения действий, необходимых для решения поставленной задачи. Предполагается, что каждое действие в этом описании реально выполнимо за ограниченный промежуток времени («за конечное время», «за конечное число шагов»). Как правило, практические алгоритмы являютсямассовыми, когда решаемая задача может иметь большое количество разных начальных условий и, соответственно, результатов. При математической формализации понятия «алгоритм» делают два допущения, идеализирующих реальность:

  1. алгоритмы могут работать бесконечно(хотя каждый элементарный шаг алгоритма выполняется за конечное время),

  2. каждый алгоритм в процессе работы может пользоваться неограниченными ресурсами памятипри том, что начальные данные всегда ограничены по памяти.

Так, нетрудно написать алгоритм, который печатает по очереди все целые числа(т.е. любое целое число будет напечатано в какой-то момент). На практике же программисты и организаторы вычислительных работ должны учитывать ограниченность ресурсов времени и памяти компьютеров. Более того, в ряде случаях они вынуждены заботиться об экономии этих ресурсов.

Описание алгоритма можно делать на обычном, естественном(русском, английском, графическом и др.) языке. Такое описание являетсянеформализованным, так как может использовать совершенно произвольные понятия и изображения. Неформализованное описание алгоритма в текстовой форме с соблюдением некоторых заранее оговорённых правил называетсяпсевдокодом. Описание алгоритма, использующееграфическую формудля представления последовательности действий, называетсясхемойилиблок-схемой.

Другие языки, специально созданные для описания алгоритмов, полностью или почти полностью формализованы. Они называются алгоритми­­ческими языками. Для описания информационных моделей предметных областей и задач также используются специальныеязыки информационного моделирования. Эти языки могут включать и алгоритмическую компоненту. Частично формализованным языком моделирования являетсяUML(англ.Unified Modeling Language) – унифицированный язык моделирования. UML является языком широкого профиля, это – открытый стандарт, использующий графические обозначения для создания информационной модели, называемойUML-моделью системы. Первоначально UML был создан для определения, визуализации, проектирования и документирования программных систем, но впоследствии стал применяться и для моделирования технических, производственных, экономических систем и бизнес-процессов.

Примером полностью формализованного языка информационного моделирования является SQL(Structured Query Language– структурированный язык запросов) – информационно-логический язык, предназначенный для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL-запросы на выборку данных имеют не алгоритмический, а логический характер.

Программа (компьютерная)– это описание алгоритма и обрабатываемых им структур данных или описание информационной модели, котороеполностью может быть выполнено компьютером. Такое описание должно быть абсолютно формализованным, иначе оно не может быть выполнено.

Язык программирования– это язык, предназначенный для записи компьютерных программ. Язык программирования определяет наборлексических,синтаксическихисемантическихправил, задающих внешний вид программы и действия, которые выполнит компьютер под её управлением. Таким образом, языки программирования полностью формализованы и доступны для «понимания» компьютера.

Особое место среди языков программирования занимают машинные языки. Программа на машинном языке состоит измашинных команд, которые записываются в цифровой форме (двоичной или шестнадцатеричной) и непосредственно исполняются процессором компьютера, т.е.реальной машинойилиаппаратно.

Программирование на машинном языке чрезвычайно трудоёмко, т.к. машинные команды и понятия слишком малы и детализированы по сравнению с действиями и понятиями, используемыми человеком для описания алгоритмов. Поэтому обычно пишут программы на языках программирования высокого уровня, которые непосредственно на компьютере исполняться не могут. Для их исполнения необходимы специальные программы-трансляторы – компиляторы или интерпретаторы.

Компилятор– это программа, преобразующая исходную программу на языке высокого уровня в машинную программу (машинный код), после чего та может исполняться реальной машиной.

Интерпретатор– это программа, которая сама исполняет исходную программу на языке высокого уровня, не преобразуя её в машинный код. Интерпретатор часто называютпрограммнойиливиртуальной машиной. Сам интерпретатор представляет собой машинную программу, исполняемую аппаратно.

Системапрограммирования – это программный комплекс, предназначенный для создания и исполнения программ на языке высокого уровня или языке символического кодирования (языке ассемблера). В минимальном варианте система программирования состоит только изкомпилятораилиинтерпретатора. В этом случае текст (код) программы пишется в любом простом текстовом редакторе, лишённом развитых средств форматирования текста. Обычно же система программирования ещё содержит специализированныйтекстовый редактордля написания программ,визуальный редакторпользовательского интерфейса,библиотеки подпрограмм, которые могут подключаться к создаваемой или исполняемой программе,отладчикпрограмм, а также учебники, справочники и многое другое.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]