Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
200801_Lec_01.pdf
Скачиваний:
15
Добавлен:
16.03.2015
Размер:
283.41 Кб
Скачать

ЛЕКЦИЯ №1. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ

Содержание

 

1.1

Базовые термины и определения...............................................................................................

1

1.2

Этапы создания программы........................................................................................................

1

1.2.1 Общие сведения о подготовке исполняемого файла........................................................

1

1.2.2 Особенности компиляции в среде Linux...........................................................................

3

1.3

Базовые понятия языка Си..........................................................................................................

4

1.3.1 Алфавит................................................................................................................................

4

1.3.2 Лексемы................................................................................................................................

4

Библиография......................................................................................................................................

6

1.1 Базовые термины и определения

Информатика – научная дисциплина, изучающая законы и методы накопления, обработки и представления информации.

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

Язык программирования – набор слов, фраз и синтаксических правил, в соответствии с которыми происходит написание программы.

Язык программирования высокого уровня – такой язык программирования, который представляет сложные оерации единственным словом; находится на более высоком уровне абстракции по сравнению с машинным языком.

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

Типичной инструкцией является команда процессору (ЦП) сложить два числа и сохранить результат в определённом месте. Обычно ЦП распознаёт несколько десятков подобных команд, каждая из которых служит решению узкой задачи.

Пример инструкции:

название: «ничего не делать»

реализация на машинном языке: 01 00 11 10 01 11 00 01 реализация на языке Assembler: NOP

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

Исполняемый код – код программы на машинном языке.

1.2 Этапы создания программы

1.2.1 Общие сведения о подготовке исполняемого файла

Можно выделить семь этапов создания стандартной программы [3]:

1.Определение целей

2.Проектирование

3.Создание кода программы

4.Компиляция

5.Выполнение программы

6.Отладка и тестирование

7.Сопровождение и модернизация.

Рассмотрим подробнее этапы 3 – 5, непосредственно связанные с созданием кода и подготовкой его к исполнению. Представим последовательность этапов в виде схемы (см.Схема 1).

Схема 1: Подготовка исполняемого кода

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

Исходный код набирается в соответствии с синтаксисом и семантикой языка в любом текстовом редакторе.

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

После обработки препроцессором формируется полный текст программы, включающий все описания и определения. Полный текст подаётся на вход компилятора.

Компилятор проверяет отсутствие ошибок в исходном тексте (если обнаруживаются ошибки, то компилятор выдаёт сообщение и не создаёт исполняемый файл) и формирует объектный код программы. Файл, содержащий объектый код, ещё не является завершённой программой, несмотря на то что содержит код программы на машинном языке. Объектный файл НЕ включает в себя следующие элементы: (1) код запуска – интерфейс между программой и операционной системой; (2) код стандартных библиотечных программ.

Компоновщик собирает объектный код, код запуска и код стандартных библиотечных программ в единый файл, называемый исполняемым файлом.

1.2.2Особенности компиляции в среде Linux

ВLinux трансляция исходного модуля ведётся на языке ассемблера и исполняемый модуль, если не указано иное, имеет стандартное имя a.out. Выбор стандартного имени обусловливается соображениями удобства отлабки и тестирования программ.

Общая схема подготовки исполняемого кода в Linux представлена [2] на следующей схеме:

Схема 2: Подготовка исполняемой программы в Linux

На схеме 2 использованы следующие условные обозначения: intro.c – исходный код на языке Си

intro.a – модуль на ассемблере intro.o – объектный файл a.out – исполняемый код

gcc – компилятор

as – компилятор языка ассемблер ld – компоновщик

libraries – библиотека объектных модулей.

Компилятор языка Си позволяет выполнить все преобразования в течение одного вызова. Справка по использованию компилятора: man gcc.

Формат команды вызова компилятора следующий:

gcc [-ключи] исходный_модуль [ключи_компоновщика] [объектные модули] [библиотеки]

Ключи задают параметры работы компилятора. Наиболее часто употребляемые ключи при создании простейших программ таковы:

-c – создать объектный код из исходного.

-o [имя_программы]– задать имя исполняемой программы (вместо a.out) -g – добавить отладочную информацию при компиляции

Ключи компоновщика указывают, какие библиотеки необходимо подключить к программе. Формат вызова: -l[библиотека]. Чаще всего потребуется подключение библиотеки математических функций, это ключ -lm.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]