КАТЕГОРИИ: Архитектура-(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; Просмотров: 549; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |