Принципы работы современных компиляторов

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

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








Дата добавления: 2015-09-07; просмотров: 1248;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.