Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
43
Добавлен:
02.05.2014
Размер:
431.62 Кб
Скачать

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

Этот этап нельзя рассмотреть как самостоятельный. Тесно примыкает к понятию мат модели и явл-ся неотъемлемой частью этого этапа. Целью этого этапа явл-сясведение задачи к мат-ой модели, для к-ой известен метод решения. Чаще всего бывает, что для полученной модели известно неск-ко методов решения. В этом случае необходимо выбрать лучший метод решения. Чаще всегокритериями выбора метода решения задачиисп-ют также, которые определяют уровень эффективности разрабатываемой программы.Это:

  • Время решения той или иной задачи

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

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

Разработка алгоритма.

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

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

Написание программ и ввод в эвм.

Цель состоит в записи алгоритма на языке программирования высокого уровня и ввода в ЭВМ. Для записи текста программы польз-ль вводит программу на известном языке, что гарантирует ему более быстрое и безошибочное написание.

Отладка программ.

Отладка программ – основная цель отладки – выявление и исправление ошибок в программе. По совр оценкам на этап отладки уходит 40-50% от разработки готовой программы.

Программный модуль. Этапы обработки программы на эвм.

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

Сущ-т 3 вида транслятора:

  1. Ассемблеры

  2. Компиляторы

  3. Интерпретаторы

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

Основная идея двухпроходного ассемблера проста:на первом проходевсе символы, имена и метки собираются в таблицу символов с соотв-ими значениями «привязанных» адресов.На втором этапе генерируется машинная программа на основании построенной на первом проходе таблицы символов.

Компиляторомназывается системная программа, к-ая воспроизводит на входе текст программы на языке высокого уровня, а генерирует программу на языке ассемблера или машинном языке.

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

В состав любого компилятора входят 3 основные компоненты:

  1. Лексический анализатор – сканер, …

  2. Синтаксический анализатор

  3. Генератор машинных команд.

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

В процессе работы лексического анализаторачитается строка оператора, к-ая разбивается на единицы лексемы.К ним относятся такие операторы, какdo,if,then, имена переменных, знаки операции, спец знаки.

А1:=А1+1 А1 имя; 1литерал; «:=, +»знаки операции

После разбивания программы на лексемы следует фаза синтаксического анализатора, называемаяграмматическим разбором. На этой фазе проверяется правильность построения операторов. Грамматич разбор привязан к четкости и правильности написания программ. В процессе синтаксич анализа структура программы преобразуется во внутр представление (матрицу-список).

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

Сканер на 1 проходе читает иходную программу и представляет ее в форме лексем. Этот файл на 2 проходе считывается синтаксич анализатором, к-ый выдает новое представление программы. Наконец этот файл читается генератором кода (на 3 проходе), к-ый и создает объектный код программы. Хотя такая структуракомпилятора явл-ся относительно низкоскоростной, тем не менее, онаобладает рядом преимуществ:

  1. каждая фаза компиляции относительно независима (кажд проход реализ-ся самостоятельно)

  2. структура отличается гибкостью

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

Синтаксич анал-р

(проход 1)

Генератор кода

Исх прога

Сканер

Таблица лексем

Запись

Объектный код

В этом случае синтаксич анализатор играет роль осн программы, обращается к сканеру, получает от него лексему за лексемой, пока не построит постфиксную запись. Затем он обращается к генератору кода, к-ый создает объектный код этого элемента.

Минус:в этом случае труднее осуществить оптимизацию кода.

Интерпретаторомназ-ся системная программа, к-ая транслирует каждые оператор исходной программы в промежуточный код, интепретируя его посредством 1 или неск-х команд и выполняя эти команды.В отличие от компилятора он не генерирует объектный код, а выдает рез-ты работы выполненных операторов исходной программы.