107 Методы трансляции. Краткая характеристика. Преимущества и недостатки. Компоновщик.
Дисциплина «Информатика и программирование»
Трансляция программы.
Как и при использовании Ассемблера, программу, написанную на любом языке высокого уровня, необходимо преобразовать в понятные процессору команды. Вначале это делалось в ручную: в таблице находили команду на ассемблере и записывали ее в машинном коде. Для ускорения процесса преобразования (трансляции) программы были написаны специальные программы — трансляторы. Существует два метода трансляции программы: интерпретация и компиляция. Следовательно, и транслятор называют либо интерпретатор, либо компилятор. При использовании интерпретатора исходный текст программы анализируется и последовательно, команда за командой, выполняется интерпретатором. В интерпретаторе содержатся модули всех используемых действий. Такое покомандное преобразование очень медленное. Но данный метод имеет большой плюс: программу можно остановить, изменить ее код и продолжить её выполнение. Это удобно при отладке программы. Так же в данном случае мы имеем исходный текст программы и можем его многократно редактировать.
При использовании компилятора текст программы анализируется, и создается файл с машинными командами, так называемый исполняемый файл. Это обеспечивает очень высокую скорость выполнения откомпилированной программы — ведь преобразование текста программы в машинные коды происходит только один раз при её компиляции. Но изменить программу «на лету» не получится: необходимо изменить текст программы и заново её откомпилировать. Если исходный текст отсутствуют по какой-либо причине, то перекомпилировать программу невозможно, а изменить исполняемый файл крайне сложно.
Компоновщик - модуль системы программирования или самостоятельная программа, которая собирает результирующую программу из объектных модулей и стандартных библиотечных модулей.
Объектный модуль можно выполнять лишь после специальной дополнительной обработки (компоновки), которая осуществляется специальной программой-компоновщиком.
Рассмотрим в общих чертах процесс компоновки. Программа строится из инструкций и операторов. В свою очередь, операторы включают выражения, которые состоят из операций и операндов. По крайней мере, части операндов в выражениях должны соответствовать отдельные "участки" оперативной памяти, предназначаемые, например, для сохранения результатов вычислений.
В ходе трансляции устанавливается соответствие между операндами и адресами областей памяти вычислительной машины. Так вот задача компоновщика состоит в согласовании адресов во всех фрагментах кода, из которых собирается готовая к выполнению программа. Компоновщик отвечает за то, чтобы конкретному операнду выражения соответствовала определённая область памяти.
Компоновщик также добавляет к компонуемой программе коды так называемых библиотечных функций (они обеспечивают выполнение конкретных действий - вычисления, вывод информации на экран дисплея и т.д.), а также код, обеспечивающий размещение программы в памяти, её корректное начало и завершение.
Преобразованная компоновщиком программа называется загрузочным или выполнимым модулем. Файлы, содержащие загрузочные модули, называют загрузочными или выполнимыми файлами.
Do'stlaringiz bilan baham: |