Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
53
Добавлен:
11.05.2015
Размер:
547.84 Кб
Скачать

Область применения

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

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

Системы программирования

Системы программирования основываются на одном из двух подходов реализации языка: интерпретации или компиляции.

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

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

Исходные и объектные модули, процессы компиляции и связывания

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

Обычно процесс преобразования текста программы в исполняемый код является многоэтапным (по крайней мере – двухэтапным).

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

Компиляция Редактирование

Исходный модуль N

Объектный модуль N

связей

Исполняемый модуль

Исходный модуль 2

Объектный модуль 2

Исходный модуль 1

Объектный модуль 1