![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Трансляция программ и их выполнение
При желании исходный текст программ можно вводить с помощью любого текстового редактора (например, с помощью Блокнота или WordPad) и обязательно сохранять его именно в текстовом формате без информации форматирования. Дело в том, что информация о форматировании помешает работе C++ - компилятора. Имя файла, который будет содержать исходный код программы, формально может Что необходимо сделать для того, чтобы выполнить трансляцию программы и выполнить ее? Конкретные действия зависят от используемой системы программирования. Способ компиляции программ зависит от используемого компилятора и выбранных опций. Более того, многие компиляторы, например Visual С++ (Microsoft) и С++ Builder (Borland), предоставляют два различных способа компиляции программ: с помощью компилятора командной строки и интегрированной среды разработки (Integrated Development Environment — IDE). Поэтому для компилирования С++ - программ невозможно дать универсальные инструкции, которые подойдут для всех компиляторов. Поскольку самыми популярными компиляторами являются Visual С++ и С++ Builder, здесь приведены инструкции по компиляции программ, соответствующие этим компиляторам. Чтобы скомпилировать программу MyProg.срр, используя Visual С++ компилятор командной строки, необходимо ввести следующую командную строку:
C: \...> cl -GX MyProg.срр
Чтобы скомпилировать программу MyProg.срр, используя С++ Builder, необходимо ввести такую командную строку:
С: \...> bcc32 MyProg.срр В результате работы С++-компилятора получается выполняемый объектный код. Для При использовании интегрированных сред разработки (IDE) соответствующие действия выполняются с помощью соответствующих команд меню. Скомпилированная программа готова к выполнению. Поскольку результатом работы
С: \...> MyProg.exe Если используется интегрированная среда разработки, то выполнить программу Основным назначением компилятора (транслятора) является перевод исходного текста программы, написанного на языке программирования понятного человеку, на язык, понятный процессору — в машинные коды. Этот процесс состоит из нескольких этапов. Рисунок иллюстрирует эти этапы для языка С++. Сначала программа передается препроцессору, который выполняет директивы, Получившийся полный текст программы поступает на вход компилятора, который выделяет лексемы, а затем на основе грамматики языка распознает выражения и операторы, построенные из этих лексем. При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия строит объектный модуль. Компоновщик, или редактор связей, формирует исполняемый модуль программы, При разработке программ возникают ошибки трех видов: 1. Синтаксические ошибки - нарушения синтаксиса (то есть грамматических правил) языка программирования, например, пропущена точка с запятой; 2. Ошибки периода выполнения – возникающие только при работе программы (например, деление на 0); 3. Логические ошибки – ошибки исходного алгоритма (например, вместо операции + ошибочно использована операция *).
При компиляции программ, содержащих синтаксические ошибки, компилятор все их обнаружит и выдаст соответствующие сообщения об ошибках и покажет приблизительное место каждой из них. Однако эти сообщения не всегда точно отражают смысл и положение синтаксической ошибки в исходном тексте. Ошибки периода выполнения обнаруживаются только при выполнении программы – эти ошибки, как правило, приводят к аварийному завершению работы программы с выдачей соответствующего сообщения. Логические ошибки компилятором и исполняющей системой компьютера не обнаруживаются и могут привести к непредсказуемому поведению программы. Обнаружить такие ошибки можно только путем анализа результатов работы программы на различных наборах тестовых данных, но и в этом случае 100% уверенности в правильности работы программы никогда нельзя дать.
|