
- •Лекция 1
- •Понятие программы и языка программирования
- •Компоненты языка программирования
- •Структурная схема компьютерной программы
- •Жизненный цикл программного средства
- •Технология подготовки и решения задачи на компьютере
- •Функция как компонент структуры программы
- •Примеры простых программ в ычисление значения функции в заданной точке
- •Вычисление суммы и количества целых чисел, введенных пользователем с клавиатуры
- •Демонстрация работы со строками на основе использования класса string
- •Виды представления программы и данных
- •Процесс компиляции программы
- •Классическая схема подготовки исполняемой программы
- •Технологический цикл обработки программы
- •Особенности внутреннего представления программы и ее исполнения 9*
- •Организация памяти компьютера
- •Сегментация программы
- •Процесс исполнения программного кода
- •Структура текстового файла программы
- •Структура программы из двух текстовых файлов
- •В результате изучения материала лекции необходимо знать
Виды представления программы и данных
Программа имеет два представления:
текстовое – исходный текст программы, хранимый в виде текстовых файлов;
кодовое:
последовательность машинных команд, которая получается как результат обработки (компиляции) исходного текста программного модуля и которая не может быть непосредственно выполнена компьютером (объектный код);
двоичный машинный код, готовый к исполнению и хранимый в виде exe-файла;
Данные имеют также два представления:
внешнее – в тексте программы, при вводе или выводе значений на экран и, возможно, хранении (в текстовом файле)
внутреннее – двоичный код, формируемый по определенным правилам компилятором и средой исполнения в оперативной памяти (в зависимости от типа данного).
Процесс компиляции программы
Функцию перевода программы в машинный код выполняет программа-транслятор, имеющая две разновидности: компилятор и интерпретатор.
Интерпретация – непосредственное выполнение программы на языке высокого уровня, не требующее трансляции инструкций (операторов) формального языка в машинный код. Интерпретаторы требуют наличия исполняющей среды для выполнения программы; удобны, когда программы часто перекомпилируются для добавления в них новых возможностей и исправления ошибок.
Компиляция – перевод текста программы с исходного формального языка на другой, более простой язык. Скомпилировать исходный код – означает выполнить программу-компилятор. В С++ компилятор является одним их компонентов IDE (Integrated Development Environment) – интегрированной среды разработки, предоставляющей программисту средства для комплексной работы с программой (редактирование, компиляция, компоновка, загрузка, выполнение, отладка, справка). Удобство IDE (например, Microsoft Visual Studio 2005) заключается в том, что не приходится работать с множеством приложений, так как все задачи выполняются в рамках IDE.
Компиляция и интерпретация отличаются совмещением фаз обработки объектов программы во времени:
при компиляции фазы преобразования и выполнения действий разнесены во времени, но зато каждая из них выполняется над всеми объектами программы одновременно;
при интерпретации, наоборот, преобразование и выполнение действий объединены во времени, но для каждого объекта программы. Отлаженные скомпилированные программы выполняются более эффективно.
Различные языки программирования включают процессы компиляции и интерпретации в разных пропорциях и сочетаниях. Язык Си++ является «чистым компилятором»: результатом трансляции является программный код, в который транслятор не включает никаких «лишних» команд (например, проверки установленных ограничений или обнаружения ошибок), что позволяет гарантировать эффективность и независимость программного кода и делает язык единственным (кроме Ассемблера) языком системного программирования, на котором пишутся ядро операционной системы, драйверы и т.п.