Трансляция программ и их выполнение

При желании исходный текст программ можно вводить с помощью любого текстового редактора (например, с помощью Блокнота или WordPad) и обязательно сохранять его именно в текстовом формате без информации форматирования. Дело в том, что информация о форматировании помешает работе C++ - компилятора.

Имя файла, который будет содержать исходный код программы, формально может
быть любым. Но С++ - программы обычно хранятся в файлах с расширением .срр. Поэтому называть исходные тексты С++ - программ можно любыми именами, но в качестве расширения следует использовать .срр. Например, назвать предыдущую программу можно, например, MyProg.срр.

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

Способ компиляции программ зависит от используемого компилятора и выбранных опций. Более того, многие компиляторы, например Visual С++ (Microsoft) и С++ Builder (Borland), предоставляют два различных способа компиляции программ: с помощью компилятора командной строки и интегрированной среды разработки (Integrated Development Environment — IDE). Поэтому для компилирования С++ - программ невозможно дать универсальные инструкции, которые подойдут для всех компиляторов.

Поскольку самыми популярными компиляторами являются Visual С++ и С++ Builder, здесь приведены инструкции по компиляции программ, соответствующие этим компиляторам.

Чтобы скомпилировать программу MyProg.срр, используя Visual С++ компилятор командной строки, необходимо ввести следующую командную строку:

 

C:\...>cl -GX MyProg.срр

 

Чтобы скомпилировать программу MyProg.срр, используя С++ Builder, необходимо ввести такую командную строку:

 

С: \...>bcc32 MyProg.срр

В результате работы С++-компилятора получается выполняемый объектный код. Для
Windows-среды выполняемый файл будет иметь то же имя, что и исходный, но другое
расширение, а именно расширение .exe. Итак, выполняемая версия программы
MyProg.срр будет храниться в файле MyProg.ехе.

При использовании интегрированных сред разработки (IDE) соответствующие действия выполняются с помощью соответствующих команд меню.

Скомпилированная программа готова к выполнению. Поскольку результатом работы
C++ компилятора является выполняемый объектный код, то для запуска программы MyProg.ехе необходимо выполнить командную строку:

 

С:\...>MyProg.exe

Если используется интегрированная среда разработки, то выполнить программу
можно путем выбора из меню команды Run (Выполнить). При выполнении этой команды осуществляется автоматическая компиляция программы и, при отсутствии ошибок, программа запускается на выполнение.

Основным назначением компилятора (транслятора) является перевод исходного текста программы, написанного на языке программирования понятного человеку, на язык, понятный процессору — в машинные коды. Этот процесс состоит из нескольких этапов. Рисунок иллюстрирует эти этапы для языка С++.

Сначала программа передается препроцессору, который выполняет директивы,
содержащиеся в ее тексте (например, включение в текст так называемых заголовочных файлов — текстовых файлов, в которых содержатся описания используемых в программе элементов).

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

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

При разработке программ возникают ошибки трех видов:

1. Синтаксические ошибки - нарушения синтаксиса (то есть грамматических правил) языка программирования, например, пропущена точка с запятой;

2. Ошибки периода выполнения – возникающие только при работе программы (например, деление на 0);

3. Логические ошибки – ошибки исходного алгоритма (например, вместо операции + ошибочно использована операция *).

 

 

 
 

 

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

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

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








Дата добавления: 2019-02-07; просмотров: 458;


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

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

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

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