Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KCUC.DOC
Скачиваний:
5
Добавлен:
14.05.2013
Размер:
116.74 Кб
Скачать

1) Языки программирования низкого уровня; 2) языки программирования высокого уровня. Языки программирования, являющиеся относительно зависимыми

от организации и принципов работы конкретной ЭВМ, являются языками низкого уровня. Как правило языки этого типа при программировании допускают указания конкретных физических средств (устройств), распределение пространства памяти, явное задание или определение внешних устройств и т. д. К этому классу относятся машиноориентированные и машинозависимые языки.

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

К машинозависимым языкам относятся в первую очередь машинный язык (все команды записываются в виде числовой последовательности) и машиноориентированные (использующие специальные мнемонические коды операций).

Языки символического кодирования (ЯСК), автокоды и ассемблеры ориентированы на конкретные ЭВМ, и программирование с их помощью требует знания не только сущности реализуемого алгоритма, но и технических особенностей конкретной ЭВМ и способов написания для нее программ (языки типа 1:1).

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

Процедуроориентированные языки эффективны для описания алгоритмов решения отдельных классов задач. Наиболее распространенные - Фортран, COBOL, PL1 (ПЛ/1), Бейсик, Паскаль, Ада, Си (C), АПЛ.

Проблемноориентированные языки предназначены для описания процессов обработки информации в какой-либо узкой, специфичес

кой области. К этим языкам относится RPG (Report Program Generator) - генератор подготовки отсчетов, ЛИСТ - язык обработки списков, язык моделирования GPSS, язык обработки матриц АПЛ. Грань между процедуро- и проблемноориентированными языками "прозрачна".

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

Трансляторы делятся на интерпретаторы и компиляторы. Интерпретатор - программа, осуществляющая пооператорную

трансляцию и выполнение исходной программы. При этом интерпретирующая программа или транслятор должна находиться в памяти ЭВМ в течение всего процесса трансляции.

Интерпретаторы используются в диалоговом режиме для разработки и отладки программ. Это позволяет составлять программы более эффективно; интерпретаторы легче разрабатывать, они дешевле.

Их недостаток - необходимость постоянного пребывания в оперативной памяти, использование снижает эффективность быстродействия машины.

В случае многократного решения задач целесообразно использовать компилятор.

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

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

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

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

Динамическая структура модулей: нужна более сложная ОС, но нет потерь времени, исполнение более эффективное, требуется более сложная управляющая программа; возможно параллельное решение задач.

Использование интерпретаторов-компиляторов позволило повысить производительность труда программистов на порядок, объем программ увеличился в 2-5 раз; быстродействие иногда меньше.

ЛЕКЦИЯ 6. ОСНОВЫ СОЗДАНИЯ ПРОГРАММНОГО ПРОДУКТА (ПП).

1. Понятие ПП. Этапы жизненного цикла ПП. 2. Основные этапы подготовки программных средств и решения

задач на ЭВМ. 3. Алгоритм. Понятие, свойства, основные типы алгоритмичес

ких структур. 4. Методы разработки программных средств. 1. Программный продукт (ПП) - это такая программа, которую в

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

Чтобы превратить программу в ПП, необходимо соблюсти следующие требования:

1) программа должна быть написана неким универсальным образом (общепринятым способом);

2) программу следует тщательно отлаживать, учитывая все влияющие на неё факторы;

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

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

Этапы жизненного цикла ПП: 1) начало зарождения ПП, проектирование, разработка. 2) внесение изменений (сопровождение программы).

2. Основные этапы подготовки программных средств совпадают с

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

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

1) постановка задачи; 2) математическая постановка задачи; 3) выбор метода решения; 4) разработка алгоритма; 5) составление программы; 6) тестирование и отлодка программы; 7) если программа разрабатывается вне данной организации, то

необходимы приёмо-сдаточные испытания; 8) решение задач на ЭВМ и анализ результатов. В этапы жизненного цикла входит сопровождение программы, т.

е. её модификация. Как правило, в процессе заключения договора с поставщиком программы пользователи оговаривают сопровождение программы в течение одного года.

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

Ц - цифровая информация (N - numerical) С - символьная информация (C - character) D - отражение даты

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

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

(2) Математическая постановка задачи требует владения языком экономико-математического описания.

На этом этапе проводится математическая формализация задачи, т. е. строится её экономико-математическая модель, используя различные формульные представления. Могут применятся различные разделы прикладной математики.

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

Имеется сложность следующего характера: часто тождественные по смыслу математическая и логическая модели могут привести к разным результатам.

(3) Необходимо осуществить выбор и обоснование метода решения задачи.

(4) ЯОА - язык описания алгоритма В соответствии с заданным численным методом или детальной

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

Эффективность зависит от типа и структуры данных. Алгоритм описывается одним из следующих способов: 1) словесный; 2) словесно-формульный; 3) описание алгоритма в виде блок-схем (в таком виде алго

ритм используется для проверки логики реализации задачи. (5) Составление (адаптация) программы.

Программа = алгоритм + данные (6) Под тестированием программы понимается целенаправленная

деятельность, ориентированная на выявление ошибок в этой программе.

Тестирование - планируемый процесс. После описания программы программист должен проверить рабо

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

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

Ошибки в программах бывают двух родов: 1) синтаксические; 2) логические.

Синтаксические ошибки выявляются автоматически в процессе трансляции (выдаются недопустимые языковые конструкции и формируются соответствующие сообщения).

Логические ошибки ведут к тому, что - программа может не работать вообще (повисание);

- программа работает, но не выдаёт результатов (зацикливается);

- программа выдаёт результаты, но они полностью или частично не совпадают с контрольными.

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

ЭВМ предполагает эту отладку; средства отладки: - средство генерации тестовых данных;

- средство трассировки программы;

- средства, позволяющие выводить промежуточные результаты;

- программы, обеспечивающие автоматизированную корректировку текста.