Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Процесс программирования



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

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

Восходящее программирование (снизу вверх) – базируется на обратном процессе: программирование и отладка программ самого нижнего уровня, затем их сборка в блоки на уровне подзадач, затем сборка блоков и отладка программы в целом.

Программирование в машинных кодах

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

Недостатки: - трудоемкость: громоздкая запись, трудная запоминаемость команд;

- сложность поиска ошибок: трудная читаемость, плохая обозримость;

- трудность внесения изменений при изменении объема программы в памяти.

Переход к 8- или 16-ной системе упрощает запись, но не устраняет других недостатков.

Достоинства: - максимальное быстродействие,

- минимальный объем программы;

- возможность непосредственного ввода программы.

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

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

Использование мнемокодов уменьшает трудности программирования в машинных кодах:

- менее громоздкая запись, легче запоминать команды;

- проще поиск ошибок: программа лучше обозревается и легче читается;

- внесение изменений не требует применения специальных приемов по размещению в памяти.

- быстродействие и объем программы не изменяются;

- для ввода программы в систему необходима ее трансляция ассемблером.

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

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

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

Программирование на языках высокого уровня

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

Различают машинно-зависимые и машинно-независимые языки высокого уровня

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

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

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

- компилятор – переводит программу в целом на машинный язык, после чего исполняемый файл записывается в память системы;

- интерпретатор – переводит на машинный язык отдельные команды исходного текста и передает их в систему для исполнения;

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

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





Дата публикования: 2015-01-13; Прочитано: 161 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...