Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по информатике.doc
Скачиваний:
11
Добавлен:
23.09.2019
Размер:
1.46 Mб
Скачать

Языки программирования

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

Ядро ИПО составляют ЯВУ (языки высокого уровня), позволяющие описывать алгоритмы решаемых пользователем задач. Существуют следующие уровни языков программирования.

1.Машинные языки.

2. Машинно-ориентированные языки.

3. Алгоритмические языки

4. Языки 4-го поколения.

Поколения языков программирования

Поколения программных средств ПС

Языки и системы программирования

Характерные черты программных средств

1-е

Машинные

Машинно-зависимые, быстрые, сложные для освоения, требуют хорошего знания архитертуры ЭВМ

2-е

Ассемблеры, макроассемблеры

Более удобные для использования, быстрые

3-е

Языки высокого уровня ЯВУ (Fortran, Basic, Pascal, PL/1, C)

Мобильные, более человеко-ориетированные, проще в освоении, более медленные

4-е

Непроцедурные, генераторы отчетов, объектно-ориентированные, языки запросов, параллельные

Ориентированы на непрофессионального пользователя; ориентированы на ЭВМ с параллельной архитектурой

5 -

Языки искусственного интеллекта ИИ, экспертных систем и баз знаний, естественные языки

Повышение интеллектуального уровня ЭВМ и интерфейса с ними

Уровни языков программирования

Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его способности, то он называется языком программирования низкого уровня. В данном случае «низкий уровень» не значит «плохой». Имеется ввиду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.

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

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

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

Ассемблеры - языки первых поколений - до сих пор используются системными программистами для разработки ПО, непосредственно управляющими аппаратными ресурсами ЭВМ. Первые три поколения ЯП требуют сложного синтаксиса написания программ (необходимы точные правила и конструкции) написания программ. Языки 4-го поколения тоже требуют соблюдения синтаксиса, но он легче в освоении. Естественные ЯП, разрабатываемые в 5-м поколении, позволят непрофессионалу решать задачи, используя предложения языка, близкого к естественному, не требующего соблюдения особого синтаксиса.

В настоящее время ЯВУ 3-го поколения составляют основу ПО всех классов ЭВМ, исключая ВС нетрадиционной параллельной архитектуры, а также широко используются ЯВУ 4-го поколения.

Этапы решения задач на ЭВМ

Основными этапами решения задач на ЭВМ являются:

1. Постановка задачи

2. Выбор метода решения.

3. Составление алгоритма.

4. Программирование.

5. Отладка и тестирование.

6. Анализ результатов.

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

Алгоритм

Алгоритм - это точное и простое описание последовательности действий для решения данной задачи. Алгоритм содержит несколько шагов, которые должны выполняться в определенной последовательности. Каждый шаг алгоритма может состоять из одной или нескольких простых операций. Важным свойством алгоритма является то, что результат его выполнения не должен зависеть от исполнителя.

Свойства алгоритмов

Понятность – исполнитель алгоритма должен знать, как алгоритм выполнить.

Дискретность – алгоритм должен состоять из последовательности выполнения отдельных простых шагов.

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

Результативность – алгоритм должен приводить к решению задачи за конечное число шагов.

Массовость – алгоритм разрабатывается в общем виде и его можно применить к некоторому классу задач.

Блок-схемы

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

начало конец

присвоение значений

ввод/вывод данных и вычисления

вызов

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

Направления выполнения алгоритма обозначаются стрелками. Существуют несколько типов алгоритмов.

Линейный алгоритм. Алгоритм называется линейным, если он содержит N шагов, и все шаги выполняются последовательно друг за другом от начала до конца.

Разветвляющийся алгоритм. Алгоритм называется разветвляющимся, если последовательность выполнения шагов алгоритма изменяется в зависимости от некоторых условий. Условие - это логическое выражения, которое может принимать два значения: "да" - если условие верно, "нет" - если условие неверно.

Пример: A>0; X<A+B; Z=5

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

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

Интегрированные системы программирования

Для создания программы нужны:

-текстовый редактор;

- компилятор;

- редактор связей;

- библиотеки стандартных функций.

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

Здесь же уместно привести определение кросс-системы.

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

Программа – последовательность команд (операторов), задающая алгоритм решения задачи на одном из языков программирования.

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

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

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