Как создаются компьютерные программы?, страница 2

Каждый конкретный язык программирования, в основном, ориентирован либо на компиляцию, либо на интерпретацию – в зависимости от того, для каких целей он был изначально создан. Так, например, FORTRAN был задуман как язык для разработки больших программ, предназначенных для решения естественнонаучных и математических задач, в которых особенно важна скорость их выполнения. Поэтому данный язык программирования обычно реализуется с помощью компилятора. С другой стороны, BASIC создавался как язык программирования начинающих программистов, для которых построчное выполнение программы имеет неоценимое преимущество. Иногда для одного языка программирования имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы лучше воспользоваться интерпретатором, а затем отлаженную программу откомпилировать, чтобы повысить скорость её выполнения.

Существенные достоинства и недостатки каждого из методов трансляции программ привели к созданию 3-го, промежуточного, подхода, который называется компиляцией в промежуточный код, и который, в некоторой степени, сочетает достоинства двух предыдущих методов – компиляции и интерпретации. При таком подходе:

1.  вначале исходная программа компилируется в так называемый промежуточный код, который

2.  затем выполняется под управлением программы-интерпретатора на конкретном компьютере.

Промежуточный код для языка программирования Java, например, называется байт-кодом, а для языков программирования Visual Basic, C++ (читается Си-плюс-плюс) и C# (читается «Си-шарп») на платформе Microsoft .NET (читается «дотНЕТ») – IL (Intermediate Language – промежуточный язык). Такое сочетание двух различных подходов к трансляции программ позволяет:

1.  уменьшить их размер,

2.  повысит скорость выполнения,

3.  проконтролировать (при необходимости) выполняемые ими действия, а также

4.  получить промежуточный код на одной компьютерной платформе (сочетание компьютера и операционной системы), а выполнить – на другой (что особенно актуально в условиях повсеместного использования Internet).

Каждому сочетанию языка программирования, операционной системы и типа компьютера должна соответствовать своя среда программирования (IDE). Например, компилятор с языка программирования C++ для операционной системы Windows XP и компьютера типа IBM PC несовместим с компилятором того же языка программирования и того же типа компьютера, но для операционной системы UNIX. Не совместимыми также бывают компиляторы для одного и того же языка программирования, но от разных производителей. Такая несовместимость выражается, главным образом, в различных форматах получаемого после компиляции машинного кода. Поэтому существуют различные сочетания интегрированных сред разработки и языков программирования в зависимости от производителя, типа компьютера и операционной системы, для которых они предназначены. Так, например, интегрированная среда разработки Visual Studio .NET предназначена для создания программ на языках программирования Visual Basic, C++ и C# для компьютеров типа IBM PC, работающих под управлением операционной системы Windows NT, Windows 2000, или Windows XP. При этом программу на языке программирования C++ можно оттранслировать как в машинные команды (получить загрузочный модуль), так и в промежуточный код IL. С языков программирования Visual Basic и C# программы можно транслировать только в промежуточный код IL. Интегрированная среда разработки для языка программирования VBA называется редактор Visual Basic.

Интегрированная среда разработки (IDE) является совокупностью программных средств, обеспечивающих автоматизацию процесса разработки и отладки программ. В её состав входят следующие компоненты, которые выполняют такие функции:

1.  Транслятор (компилятор, интерпретатор или оба вместе) – обеспечивает трансляцию (перевод) программы, написанной на одном из языков программирования, в машинные команды. Поскольку эта функция является основной, то IDE, и даже всю систему программирования, иногда называют компилятором. Никакой путаницы в таких случаях, как правило, не происходит, поскольку из контекста всегда понятно, к чему относится это понятие – к отдельной программе-транслятору, или ко всей системе программирования.

2.  Текстовый редактор – служит для облегчения и, в некоторой степени, автоматизации процесса создания исходных текстов программ посредством:

a)  выдачи различного рода окон с подсказками,

b)  структуризации программы с помощью отступов слева, и

c)  «раскрашивания» различных фрагментов исходного текста программы, в зависимости от их функционального назначения.

3.  Компоновщик (редактор связей) – предназначен для компоновки (объединения) отдельных частей большой программы в один загрузочный модуль. Компоновщики используются, в основном, с трансляторами компилирующего типа. Если перевести на «кулинарный» язык, то процесс компоновки – это смешивание всех, отдельноприготовленных, компонентов блюда. Например, заправка украинского борща добрым украинским салом.

4.  Отладчик – обеспечивающий автоматизацию процесса отладки программ и поиска в них ошибок.

5.  Оболочка – объединяет в законченную систему все, перечисленные выше, составляющие.

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