Выбрать главу

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

ПРИМЕЧАНИЕ Промежуточный псевдокод называется общим промежуточным язы-

ком, или CIL — сокращение от Common Intermediate Language.

Псевдокод выполняется под управлением специальной системы, которая

является составной частью платформы .NET Framework и называется

CLR — сокращение от Common Language Runtime. Система CLR, в свою

очередь, для выполнения промежуточного псевдокода вызывает специ-

альный встроенный в среду компилятор. Компилятор переводит псевдо-

код в исполнительный код. Делается это непосредственно перед выпол-

нением программы, что существенно оптимизирует время выполнения

кода.

Особенности и идеология C#           11

ПРИМЕЧАНИЕ Ситуация несколько напоминает процесс компиляции и выполнения

Java-кодов. При компиляции Java-программ также получается не ис-

полнительный код, а промежуточный байт-код, который выполняет-

ся виртуальной Java-машиной (JVM как сокращение от Java Virtual Machine) — аналогом системы CLR. Однако за внешней схожестью здесь

имеются существенные принципиальные различия. Обратим внимание

читателя на два обстоятельства. Во-первых, необходимость компили-

рования программ в промежуточный код в Java обусловлена желанием

универсализации программных кодов, в то время как в .NET Framework (и C# как базового языка платформы) «появление» промежуточного

кода имеет целью «свести к общему знаменателю» программные моду-

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

CIL не привязан к какому-то конкретному языку программирования

или определенному типу процессора. Во-вторых, наличие встроенного

эффективного компилятора в .NET Framework практически нивелирует

неэффективность времени исполнения, связанную с использованием

промежуточного кода (вместо исполнительного).

Все вышесказанное характеризует общее направление развития языка C#.

Для нас из всего вышеизложенного важным является то, что мы неявно

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

предназначены для исполнения в операционной системе Windows.

Для читателей, знакомых с языками Java и (или) C++, несколько слов

хочется сказать и о том, что отличает/объединяет языки C++ и Java, с

одной стороны, и язык C# с другой. Общую генелогию этих языков мы

кратко упоминали. У всех трех языков достаточно схожий синтаксис, равно как и большинство управляющих инструкций (таких, напри-

мер, как операторы цикла или условные операторы). Язык C#, так же

как и Java, полностью объектно-ориентированный. Самая маленькая

и безобидная программа, написанная на C#, содержит хотя бы один

класс. У языков C# и Java достаточно схожие объектные модели —

в плане реализации классов и объектов. Вообще, в языке C# собрано

все лучшее, что есть в C++ и Java, и по большей части устранены недо-

статки этих языков (хотя, конечно, до полной виктории очень далеко).

Например, в C#, так же как в C++, используется концепция пространства

имен. В C# можно использовать указатели и переопределять опера-

торы — правда, не на таком уровне, как в C++, но в Java этого вообще

нет. В C# есть делегаты, которые играют роль, аналогичную указателям

на функции в C++. Вместе с тем в C# объекты передаются по ссылке

(как в Java), используются интерфейсы (как в Java), используется

аналогичная Java система «сборки мусора» (автоматическое удаление

неиспользуемых объектов) и система обработки исключительных си-

туаций. Есть в C# и целый набор достаточно оригинальных и полезных

новшеств, с которыми мы, безусловно, познакомимся.

12

Вступление. Язык программирования C#

Программное обеспечение

Это дело очень интересное. И простое.

Из к/ф «Приключения Шерлока Холмса

и доктора Ватсона. Знакомство»

С «идеологией» и «концепцией» мы более-менее разобрались. Все это, ко-

нечно, хорошо, но пора перейти к вещам более практичным. Ведь главный

вопрос остался неразрешенным: что нужно сделать, чтобы создать про-

грамму на C#? Или, более конкретно, какое программное обеспечение для

этого нужно? Для ответа на этот вопрос напомним, из чего, собственно, состоит процесс создания программы. Состоит он, в самых общих чертах, из следующих этапов.