Два этапа создания программ

Простейшие программы

Необходимость программирования

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

Два этапа создания программ

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

1) трансляция – перевод текста программы в машинные коды;

2) компоновка – сборка частей программы и подключение стандартных функций.

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

• обычно сложная программа разбивается на несколько отдельных частей (модулей), которые отлаживаются отдельно и зачастую разными людьми; поэтому в завершении остается лишь собрать готовые модули в единый проект;

• при исправлении в одном модуле не надо снова транслировать (переводить в машинные коды) все остальные (это могут быть десятки тысяч строк);

• при компоновке во многих системах можно подключать модули, написанные на других

языках, например, на Ассемблере (в машинных кодах).

Трансляторы языка Си называются компиляторами: они переводят (транслируют) сразу

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

Исходный файл программы на языке Си имеет расширение *.с или *.cpp (расширение

*.cpp говорит о том, что в программе могут быть использованы возможности языка Си++).

Это обычный текстовый файл, в который записывают текст программы в любом текстовом редакторе, например, в Блокноте.

Транслятор переводит исходный файл (вернее, записанную в нём программу) в машинные коды и строит так называемый объектный файл с тем же именем и расширением *.o. Хотя в нем уже записан машинный код, объектный файл еще нельзя запускать на компьютере,потому что в нем не хватает стандартных функций (например, для ввода и вывода данных).

Компоновщик подключает стандартные функции, хранящиеся в библиотеках (они имеют

расширение *.a). В результате получается один файл с расширением *.exe, который и представляет собой готовую программу.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: