Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика.pdf
Скачиваний:
305
Добавлен:
02.03.2016
Размер:
600.39 Кб
Скачать

Синтаксис — это система правил, определяющих допустимые конструкции языка программирования из символов алфавита.

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

Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например, операторы, идентификаторы, переменные, функции и процедуры и т.д.

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

Для представления программы на машинном языке для таких языков требуется программа-переводчик (транслятор). Любой транслятор осуществляет две основные задачи:

1)анализирует транслируемую (исходную) программу, определяет, правильна ли она,

2)генерирует выходную программу (ее часто называют объектной) на язык

команд ЭВМ.

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

5.6. Технологии программирования

Подходы к разработке алгоритмов и программ существенно изменялись в ходе развития электронно-вычислительной техники.

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

Процедурное программирование является отражением архитектуры традиционной ЭВМ, которая была предложена фон Нейманом.

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

52

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

Структурное программирование основано на использовании блок-схем, формируемых с помощью управляющих структурных элементов. Наиболее отчетливо структурное программирование выражено в языке Паскаль. При структурном программировании следует придерживаться следующих правил.

1.Разрешается использовать только три базовые структуры — следование, ветвление, цикл, причем структуры ветвление и цикл должны иметь четко определенный вид. Допускаются вложения структур друг в друга, т.е. могут быть вложенные структуры вида: ветвление в цикле, цикл в цикле и т.д., причем количество вложений неограниченно. Но у любой структуры простой или составной всегда должен быть один вход и один выход.

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

3.При написании алгоритмов и программ следует использовать модульный принцип алгоритмизации и программирования. Модуль — это отдельная алгоритмическая единица, выполняющая четко определенные функции. Алгоритмический модуль создается отдельно от основного алгоритма и имеет с основным алгоритмов информационную связь.

Принципиально новое направление в программировании связано с методологиями непроцедурного программирования. К данному направлению относятся объектно-ориентированное и декларативное программирование.

Декларативный подход к разработке программ появился в начале 70-х годов. Он не получил широкого распространения, т.к. предназначен был для решения узкого круга задач искусственного интеллекта. В программах на декларативных языках описываются свойства исходных данных, свойства, которыми должен обладать результат, а не алгоритм для получения результата. Алгоритм заложен в самой системе программирования, которая поддерживает данный декларативный язык. Декларативные языки программирования делятся на логические и функциональные.

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

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

53

т.е. того, что надо определить. «Решает задачу» сама машина с помощью встроенного автоматического решателя задач.

При объектно-ориентированном подходе исходная задача представляется как совокупность взаимодействующих объектов. Суть объекта выражается формулой: объект = данные + процедуры, обработки этих данных.

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

Для описания объектов служат классы. Класс определяет свойства и методы объекта, принадлежащего этому классу. Соответственно, любой объект можно определить как экземпляр класса.

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

Наиболее популярные среды для объектно-ориентированного программирования созданы на основе языков Бейсик, Си и Паскаль. Для объектно-ори- ентированного программирования используют такие популярные средства, как Си++, Java, Delphi, Visual Basic.

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

5.7. Этапы решения задач на компьютере

На ЭВМ могут решаться задачи различного характера: научные, инженерные, управления производственным процессом, разработки системного программного обеспечения и т.д.

В процессе подготовки и решения научно-инженерных задач можно выделить следующие этапы:

1.Постановка задачи. На этом этапе формулируются условие и цели задачи на естественном языке, в терминах той предметной области, в которой возникла задача.

2.Построение математической модели. На этом этапе создается такая модель решаемой задачи, которая может быть реализована на компьютере, т.е.

54

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

3.Выбор и обоснование метода решения. На данном этапе выбирается метод решения задачи в рамках построенной математической модели.

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

5.Составление программы. Выбирается язык программирования, уточняется способ организации данных, алгоритм записывается на выбранном языке программирования в виде программы.

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

7.Исполнение программы на компьютере. Данный этап предполагает выполнение расчетов, накопление информации.

8.Анализ полученных результатов и уточнение в случае необходимости математической модели с повторным выполнением этапов 2 — 5.

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

Вопросы для самопроверки

1.Что такое алгоритм?

2.Каковы свойства алгоритма?

3.Каковы основные способы представления алгоритмов?

4.Какой вычислительный процесс называется линейным?

5.Какой вычислительный процесс называется ветвящимся?

6.Какой вычислительный процесс называется циклическим?

7.Что представляет собой структура «следование», как реализуется она на языках программирования?

8.Что представляет собой структура «развилка», как реализуется она на языках программирования?

9.Что представляет собой структура «выбор», как реализуется она на языках

программирования?

10.Что представляет собой структура «цикл с предусловием», как реализуется она на языках программирования?

11.Что представляет собой структура «цикл с постусловием», как реализуется она на языках программирования?

55