Г. Шилдт - С#4.0 Полное руководство, страница 5
Описание файла
DJVU-файл из архива "Г. Шилдт - С#4.0 Полное руководство", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 5 - страница
Стремление к созданию объектноориентированного варианта С в конечном итоге привело к появлению С н., Язык С++ был разработан в 1979 году Бьярне Страуструпом (В)агпе 51гоивГгцр), работавшим в компании Вев ЕаЬогаГог(ев, базировавшейся в Мюррей-Хилл, шт. НьюДжерси. Первоначально новый язык назывался "С с классами", но в 1983 году он был переименован в С-н-, Язык С полностью входит в состав С.н-, а следовательно, С служит основанием, на котором зиждется С.н.. Большая часть дополнений, введенных Страуструпом, обеспечивала плавный переход к ООП. И вместо того чтобы изучать совершенно новый язык, программирующему на С требовалось лишь освоить ряд новых свойств, чтобы воспользоваться преимуществами методики ООП.
В течение 1980-х годов С-н. все еще оставался в тени, интенсивно развиваясь, но к началу 1990-х годов, когда он уже был готов для широкого применения, его популярность в области программирования заметно возросла. К концу 1990-х годов он стал наиболее широко распространенным языком программирования и в настоящее время по-прежнему обладает неоспоримыми преимуществами языка разработки высокопроизводительных программ системного уровня.
Важно понимать, что разработка С.н. не была попыткой создать совершенно новый язык программирования. Напротив, это была попытка усовершенствовать уже существовавший довольно удачный язык. Такой подход к разработке языков программирования, основанный на уже существующем языке и совершенствующий его далее, превратился в упрочившуюся тенденцию, которая продолжается до сих пор. Появление Интернета и 1ача Следующим важным шагом в развитии языков программирования стала разработка )ача.
Работа над языком )ача, который первоначально назывался Оа)г (Дуб), началась в 1991 году в компании Бцп М(сговувгетз. Главной "движущей силой" в разработке )аха был Джеймс Гослинг нагаев Совнпа), но не малая роль в работе над этим языком принадлежит также Патрику Ноутону (Рагг(сК )х(ацВЫоп), Крису Уорту (СЬпв 1ЧагГЬ), Эду Фрэнку (Ег( Ргатй) и Майку Шеридану (Мйе БЬег(г(ап). )ана представляет собой структурированный, объектно-ориентированный язык с синтаксисом и конструктивными особенностями, унаследованными от С++. Нововведения в )ага возникли не столько в результате прогресса в искусстве программирования, хотя некоторые успехи в данной области все же были, сколько вследствие перемен в вычислительной среде.
До появления на широкой арене Интернета большинство программ писалось, компилировалось и предназначалось для конкретного процессора и операционной системы. Как известно, программисты всегда стремились повторно использовать свой код, но, несмотря на это, легкой переносимости программ из одной среды в другую уделялось меньше внимания, чем более насущным задачам. Тем не менее с появлением Интернета, когда в глобальную сеть связывались 34 Часть Е Язык С№ разнотипные процессоры и операционные системы, застаревшая проблема переносимости программ вновь возникла с неожиданной остротой. Для решения проблемы переносимости потребовался новый язык, и им стал )ача. Самым важным свойством (и причиной быстрого признания) )ача является способность создавать межплатформенный, переносимый код, тем не менее, интересно отметить, что первоначальным толчком для разработки )ача послужил не Интернет, а потребность в независящем от платформы языке, на котором можно было бы разрабатывать программы для встраиваемых контроллеров.
В 1993 году стало очевидно, что вопросы межплатформенной переносимости, возникавшие при создании кода для встраиваемых контроллеров, стали актуальными и при попытке написать код для Интернета. Напомним, что Интернет — это глобальная распределенная вычислительная среда, в которой работают и мирно "сосуществуют" разнотипные компьютеры. И в итоге оказалось, что теми же самыми методами, которыми решалась проблема переносимости программ в мелких масштабах, можно решать аналогичную задачу в намного более крупных масштабах Интернета. Переносимость программ на )ача достигалась благодаря преобразованию исходного кода в промежуточный, называемый баит-кодом. Этот байт-код затем выполнялся виртуальной машиной )ача ЦЧМ) — основной частью исполняющей системы)ача.
Таким образом, программа на )ача могла выполняться в любой среде, для которой была доступна )ЧМ. А поскольку )ЧМ реализуется относительно просто, то она сразу же стала доступной для большого числа сред. Применением байт-кода )ача коренным образом отличается от С и С++, где исходный код практически всегда компилируется в исполняемый машинный код, который, в свою очередь, привязан к конкретному процессору и операционной системе. Так, если требуется выполнить программу на С или См- в другой системе, ее придется перекомпилировать в машинный код специально для данной вычислительной среды. Следовательно, для создания программы на С или С-н-, которая могла был выполняться в различных средах, потребовалось бы несколько разных исполняемых версий этой программы. Это оказалось бы не только непрактично, но и дорого.
Изящным и рентабельным решением данной проблемы явилось применение в )ача промежуточного кода. Именно это решение было в дальнейшем приспособлено для целей языка СФ. Как упоминалось ранее, )ача происходит от С и С.н.. В основу этого языка положен синтаксис С, а его объектная модель получила свое развитие из С-н- И хотя код)ана не совместим с кодом С или С н. ни сверху вниз, ни снизу вверх, его синтаксис очень похож на эти языки, что позволяет большому числу программирующих на С или Сее без особого труда перейти на )ана.
Кроме того, )ана построен по уже существующему образцу, что позволило разработчикам этого языка сосредоточить основное внимание на новых и передовых его свойствах. Как и Страуструпу при создании С-н; Гослингу и его коллегам не пришлось изобретать велосипед, т.е. разрабатывать )ача как совершенно новый язык.
Более того, после создания )ана языки С и С н- стали признанной основой, на которой можно разрабатывать новые языки программирования. Создание С№ Несмотря на то что в )ача успешно решаются многие вопросы переносимости программ в среде Интернета, его возможности все же ограничены. Ему, в частности, недостает межьязыковой возможности взаимодействия, называемой также многоязыковым программированием. Это возможность кода, написанного на одном языке, без труда вза- Глава 1. Создание С№ 35 имодействовать с кодом, написанным на другом языке. Межъязыковая возможность взаимодействия требуется для построения крупных, распределенных программных систем. Она желательна также для создания отдельных компонентов программ, поскольку наиболее ценным компонентом считается тот, который может быть использован в самых разных языках программирования и в самом большом числе операционных сред. Другой возможностью, отсутствующей в )ача, является полная интеграция с платформой 1%пс)оччз.
Несмотря на то что программы на )ача могут выполняться в среде чч)пгГогчз, при условии, что установлена виртуальная машина )ача, среды )ача и чч)пс)оччз не являются сильно связанными. А поскольку гч'1пг)оччз является самой распространенной операционной системой во всем мире, то отсутствие прямой поддержки Хшг1огчз является существенным недостатком )ача. Для удовлетворения этих и других потребностей программирования корпорация М)сгозой разработала в конце 1990-х годов язык С№ как часть общей стратегии .)х)ЕТ. Впервые он был выпущен в виде альфа-версии в середине 2000 года.
Главным разработчиком С№ был Андерс Хейльсберг — один из ведущих в мире специалистов по языкам программирования, который может похвалитьсл рядом заметных достижений в данной области. Достаточно сказать, что в 1980-е годы он был автором очень удачной и имевшей большое значение разработки — языка ТигЬо Гавса1, изящная реализацил которого послужила образцом для создания всех последующих компиляторов.
Язык С№ непосредственно связан с С, С-н. и )ача. И это не случайно. Ведь это три самых широко распространенных и признанных во всем мире языка программирования. Кроме того, на момент создания С№ практически все профессиональные программисты уже владели С, С н. или )ача. Благодаря тому что С№ построен на столь прочном и понятном основании, перейти на этот язык из С, С~-> или )ача не представляло особого труда.
А поскольку и Хейльсбергу не нужно (да и нежелательно) было изобретать велосипед, то он мог сосредоточиться непосредственно на усовершенствованиях и нововведениях в С№. На рис. 1.1 приведено генеалогическое дерево С№. Предком С№ во втором поколении является С, от которого он унаследовал синтаксис, многие ключевые слова и операторы. Кроме того, С№ построен на усовершенствованной объектной модели, определенной в С++. Если вы знаете С или С-н; то будете чувствовать себя уютно и с языком С№. Рис.