![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Программа состоит из одной или нескольких частей, называемых программными модулями. Программный модуль на языке программирования называется исходным модулем. В результате трансляции исходный модуль превращается в объектный модуль.
Нисходящее программирование (сверху вниз) – базируется на декомпозиции задачи на множество подзадач, которые программируются как именованные процедуры с возможностью обращения. Подзадачи с неготовыми процедурами подменяются в структуре программы программными «заглушками», что позволяет производить отладку программы в целом, заменяя «заглушки» по мере готовности подзадач.
Восходящее программирование (снизу вверх) – базируется на обратном процессе: программирование и отладка программ самого нижнего уровня, затем их сборка в блоки на уровне подзадач, затем сборка блоков и отладка программы в целом.
Программирование в машинных кодах
Программа записывается в виде чисел, соответствующих адресам ячеек памяти и кодам команд процессора
Недостатки: - трудоемкость: громоздкая запись, трудная запоминаемость команд;
- сложность поиска ошибок: трудная читаемость, плохая обозримость;
- трудность внесения изменений при изменении объема программы в памяти.
Переход к 8- или 16-ной системе упрощает запись, но не устраняет других недостатков.
Достоинства: - максимальное быстродействие,
- минимальный объем программы;
- возможность непосредственного ввода программы.
Программирование на языке ассемблера
Программа записывается в виде мнемокодов и символических имен регистров, соответствующих кодам команд процессора и адресам ячеек памяти. Мнемокоды представляют урезанные до нескольких букв слова английского языка
Использование мнемокодов уменьшает трудности программирования в машинных кодах:
- менее громоздкая запись, легче запоминать команды;
- проще поиск ошибок: программа лучше обозревается и легче читается;
- внесение изменений не требует применения специальных приемов по размещению в памяти.
- быстродействие и объем программы не изменяются;
- для ввода программы в систему необходима ее трансляция ассемблером.
Язык ассемблера, как и машинные коды, жестко привязан к архитектуре и индивидуален для каждого процессора.
Программирование на языке макроассемблера
Отличается возможностью присвоения имени некоторой последовательности команд для повторения этой последовательности в других местах программы путем записи имени в этих местах. Это сокращает запись текста программы и лучшую его обозримость, однако для трансляции в машинные коды требуется специальный макропроцессор.
Программирование на языках высокого уровня
Приближаются к обычному языку записи математических и логических операций, причем сложные математические и логические процедуры представляются короткими записями. Обеспечивают дальнейшее сокращение текста, улучшение обозримости программы и облегчения процесса выявления ошибок.
Различают машинно-зависимые и машинно-независимые языки высокого уровня
Для ввода в систему программы, написанной на языке высокого уровня необходима ее трансляция. Трансляторы с языков высокого уровня сложнее, чем с языков ассемблера, причем с машинно-независимых языков они сложнее, чем с машинно-зависимых.
Полученная при трансляции исполняемая программа занимает больший объем памяти (от десятков до сотен процентов) и медленнее выполняется (сравнение производится с программой на языке ассемблера). Эффективность трансляции с машинно-независимых языков они ниже, чем с машинно-зависимых.
Перевод программы на машинный язык осуществляется транслятором. Различают следующие виды трансляторов:
- компилятор – переводит программу в целом на машинный язык, после чего исполняемый файл записывается в память системы;
- интерпретатор – переводит на машинный язык отдельные команды исходного текста и передает их в систему для исполнения;
- ассемблер – производит присвоение операторам программы, написанной на языке ассемблера, соответствующих машинных кодов.
Трансляция начинается с чтения исходного текста (называется проходом), при котором производится его лингвистический анализ и генерация сообщений о синтаксических ошибках с указанием их места и типа. Различают однопроходные и многопроходные трансляторы. Многопроходные трансляторы при первом проходе переводят программу на промежуточный язык, на втором осуществляют ее техническая подготовка к вычислениям (точки вычислений, чистка циклов, распределение индексных регистров и т.п.), на третьем производится генерация и оптимизация выходного кода (при наличии оптимизатора в составе транслятора).
Дата публикования: 2015-01-13; Прочитано: 161 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!