Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




Поделиться с друзьями:


Дата добавления: 2015-01-03; Просмотров: 522; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.042 сек.