Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

История возникновения и развития языка программирования Си(С++) и Java

Содержание:

Введение

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

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

Когда этот язык — язык программирования, его влияние, независимо от нашего желания, сказывается на нашем способе мышления.

Язык программирования (ЯП) — формальный метод для записи компьютерных программ. Каждая такая программа — комбинация инструкций для вычислительной машины и данных, позволяющая выполнять расчеты и осуществлять управление.

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

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

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

Глава 1. История возникновения и развития языка программирования Си (C++)

Общие сведения об языке программирования Си(С++)

C - это компилируемый, статически типизированный язык программирования общего назначения, который был разработан компанией Bell Labs-сотрудники Деннис Ричи (рис.1) 1969-1973 как развитие B-язык. Изначально он был разработан для реализации операционной системы UNIX, но с тех пор была портирована на многие другие платформы.

Картинки по запросу "Деннис Ричи""

Рис. 1. Денис Ричи

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

Язык программирования C оказал значительное влияние на развитие индустрии программного обеспечения, и его синтаксис стал основой для языков программирования, таких как C++, C#, Java и Objective-C.

Язык C был разработан как язык системного программирования, для которого может быть создан однопроходный компилятор.

Стандартная библиотека также небольшая. В результате этих факторов компиляторы относительно легко разрабатываются.

Таким образом, этот язык доступен на самых разных платформах. Кроме того, несмотря на свой низкоуровневый характер, язык ориентирован на переносимость. Программы, соответствующие языковому стандарту, могут быть скомпилированы для различных компьютерных архитектур.

Целью языка было облегчить написание больших программ с минимальными ошибками по сравнению с ассемблерами, следуя принципам процедурного программирования, но избегая всего, что могло бы привести к дополнительным накладным расходам, характерным для языков более высокого уровня.

Основные особенности языка программирования Си

Основные особенности Си:

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

В то же время в Си отсутствуют:

  • вложенные функции;
  • прямое возвращение нескольких значений из функций;
  • сопрограммы;
  • средства автоматического управления памятью;
  • встроенные средства объектно-ориентированного программирования;
  • средства функционального программирования.

Часть отсутствующих возможностей может имитироваться встроенными средствами (например, сопрограммы можно имитировать с помощью функций setjmp и longjmp), часть добавляется с помощью сторонних библиотек (например, для поддержки многозадачности и для сетевых функций можно использовать библиотеки pthreads, sockets и тому подобные; существуют библиотеки для поддержки автоматической сборки мусора), часть реализуется в некоторых компиляторах в виде расширений языка (например, вложенные функции в GCC).

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

Механизмы ООП, основанные на данной модели, реализованы в библиотеке GLib и активно используются в фреймворке GTK+. GLib предоставляет базовый класс GObject, возможности наследования от одного класса и реализации множества интерфейсов.

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

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

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

Краткая история развития языка Cи (C++)

Язык программирования Си живет по принципу «всякая сущность есть объект». Его причисляют к объектно-ориентированным, а точнее объектным, языкам программирования. «Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода» – так принято характеризовать его. Однако скептики сомневаются как минимум в его безопасности.

Сторонники Cи называют его самым мультипарадигменным, универсальным, продвинутым и удобным в использовании языком программирования. Учитывая тот факт, что за ним стоит платформа Microsoft .NET, число таких сторонников достаточно велико.

Далекие предки Cи появились еще в 60-х годах. Все началось с появления языка B, который в 1969 году был создан коллективом разработчиков из Технологического института Массачусетса (MIT). Главным автором B является Кен Томпсон. Тогда команда работала над операционной системой UNIX.

Уже существовавший язык PL/I, применявшийся в то время для мэйнфреймов производства компании IBM, был достаточно громоздким и меньше подходил для поставленной задачи. Поэтому ученые решили создать новый язык, который и получил название B. Он является типичным представителем ранних императивных языков программирования.

В 70-х программистов на Cи было немного и большинство из них были пользователями UNIX. Тем не менее, в 80-х Cи вышел за узкие рамки мира UNIX. Компиляторы Cи стали доступны на различных машинах, работающих под управлением разных операционных систем. В частности, Си стал распространяться на быстро развивающейся платформе IBM PC.

K&R ввёл следующие особенности языка:

  • структуры (тип данных struct);
  • длинное целое (тип данных long int);
  • целое без знака (тип данных unsigned int);
  • оператор += и подобные ему (старые операторы =+ вводили анализатор лексики компилятора Си в заблуждение, например, при сравнении выражений i =+ 10 и i = +10).

K&R C часто считают самой главной частью языка, которую должен поддерживать компилятор Си. Многие годы даже после выхода ANSI Cи он считался минимальным уровнем, которого следовало придерживаться программистам, желающим добиться от своих программ максимальной переносимости, потому что не все компиляторы тогда поддерживали ANSI C, а хороший код на K&R C был верен и для ANSI C.

Вместе с ростом популярности появились проблемы. Программисты, писавшие новые компиляторы брали за основу язык, описанный в K&R. К сожалению, в K&R некоторые особенности языка были описаны расплывчато, поэтому компиляторы часто трактовали их на своё усмотрение. Кроме того, в книге не было чёткого разделения между тем, что является особенностью языка, а что особенностью операционной системы UNIX.

После публикации K&R C в язык было добавлено несколько возможностей, поддерживаемых компиляторами AT&T, и некоторых других производителей:

  • - функции, не возвращающие значение (с типом void), и указатели, не имеющие типа (с типом void *);
  • - функции, возвращающие объединения и структуры;
  • - имена полей данных структур в разных пространствах имён для каждой структуры;
  • - присваивания структур;
  • - спецификатор констант (const);
  • - стандартная библиотека, реализующая большую часть функций, введённых различными производителями;
  • - перечислимый тип (enum);
  • - дробное число одинарной точности (float).

Ухудшало ситуацию и то, что после публикации K&R Си продолжал развиваться: в него добавлялись новые возможности и из него вырезались старые. Вскоре появилась очевидная необходимость в исчерпывающем, точном и соответствующем современным требованиям описании языка. Без такого стандарта стали появляться диалекты языка, которые мешали переносимости – сильнейшей стороне языка.

В конце 1970-х годов, язык Си начал вытеснять BASIC, который в то время был ведущим в области программирования микрокомпьютеров. В 1980-х годах он был адаптирован под архитектуру IBM-PC, что привело к значительному скачку его популярности.

После B, как это ни странно, последовал С, который был изобретен в 1972 году. Основой для нового языка послужил сам B.

Создателями C были Кен Томпсон и Денис Ритчи, которые работали в исследовательской лаборатории компании AT&T (AT&T Bell Telephone Laboratories). В 1971 году Ритчи начал создавать расширенную версию B. Сначала он назвал её NB (New B), но когда язык стал сильно отличаться от B, название сменили на C. B расширился за счет явного использования типов, структур и ряда новых операций.

По поводу возникновения языка Си Питер Мойлан в своей книге «The case against C» писал: «Нужен был язык, способный обойти некоторые жесткие правила, встроенные в большинство языков высокого уровня и обеспечивающие их надежность. Нужен был такой язык, который позволил бы делать то, что до него можно было реализовать только на ассемблере или на уровне машинного кода».

В 1984 году Бьярне Страуструп (Bell Labs) выступил с проектом языка С++. Когда Страуструп (Рис 2.) занимался исследованиями в фирме, ему потребовалось написать несколько имитационных программ для моделирования распределенных вычислений.

Картинки по запросу "бьерн струструп""

Рис. 2. Бьерн Страуструп

SIMULA-67 — объектно-ориентированный язык – мог бы стать идеальным инструментом для решения подобных задач, если бы не его сравнительно низкая скорость выполнения программ.

Так был создан язык программирования С++, первоначально получивший название «Си с классами» (С with classes). Название «С++» придумал Рик Мэсчитти. "++" — это оператор инкремента в С, который как бы намекает на то, что язык С++, нечто больше, чем просто С.

Microsoft решила отметить Миллениум выпуском новых программных продуктов. К 2000 году компания подготовила промышленные версии новых компонентных технологий и решений в области обмена сообщениями и данными, а также создания Internet-приложений (COM+, ASP+, ADO+, SOAP, Biztalk Framework).

В поддержку этих новшеств Microsoft выпустила инструментарий для разработки приложений – платформу .NET. Она также объединяла «под одной крышей» несколько языков программирования, что было в новинку для того времени.

Еще одним новшеством платформы .NET была технология активных серверных страниц ASP.NET (Active Server Page). С её помощью можно было относительно быстро разработать веб-приложения, взаимодействующие с базами данных.

Язык программирования C# был создан специально для ASP.NET. На C# полностью была написана и сама ASP.NET.

Название «Си шарп» (от англ. sharp — диез) несет «сакральный» смысл. Знак «#» (в музыкальной нотации читается как «диез») означает повышение высоты звука на полтона. С другой стороны, название «C#» получается путем следующей «эволюционной цепочки»: C → C++ → C++++(C#), так как символ «#» можно составить из 4-х знаков «+».

Вследствие технических ограничений на отображение (стандартные шрифты, браузеры и т. д.) и того, что знак диез ♯ не представлен на стандартной клавиатуре, знак # был выбран для представления знака диез при записи имени языка программирования. Это соглашение отражено в Спецификации Языка C# ECMA-334. Названия языков программирования не принято переводить, поэтому язык следует называть по-английски «Си шарп».

Авторами этого языка программирования стали Скотт Вилтамут и Андерс Хейльсберг( Рис. 3) — создатель Турбо Паскаля и Дельфи, перешедший в 1996 году в Microsoft.

Картинки по запросу "Андерс Хейлсберг""

Рис. 3. Андерс Хейльсберг

По одной из версий, он вынашивал замысел нового языка и даже новой платформы (которая сейчас носит название .NET), еще работая в компании Borland.

C# поддерживает все три «столпа» объектно-ориентированного программирования: инкапсуляцию, наследование и полиморфизм. Кроме того, в нем была реализована автоматическая «сборка мусора», обработки исключений, динамическое связывание.

Си – компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах Деннисом Ритчи. Первоначально он был разработан для реализации операционной системы UNIX, но, впоследствии, был перенесён на множество других платформ.

Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.

Язык программирования Си отличается минимализмом. Авторы языка хотели, чтобы программы на нём быстро компилировались с помощью однопроходного компилятора.

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

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

Поэтому прежде чем использовать функцию, её необходимо объявить.

Код на Си можно легко писать на низком уровне абстракции, поэтому иногда Си называют «универсальным ассемблером» или «ассемблером высокого уровня», что отражает различие языков ассемблера для разных платформ и единство стандарта Си.

Код Си может быть скомпилирован без каких-либо изменений почти на любой модели компьютера. Зачастую язык программирования Си называют языком среднего уровня или даже низкого уровня, учитывая то, как близко он работает к реальным устройствам.

Почему язык Си стал популярным:

История языка Си неразрывно связана с историей операционной системы UNIX. Эта система, как и большинство входящих в нее утилит, написана на Си. С тех пор Си остается широко распространенным языком — по тем же причинам, что и Фортран: с расширением круга пользователей язык развивает сокрушительную инерцию.

Достоинства языка:

  • Си современный язык. Он включает в себя те управляющие конструкции, которые рекомендуются теоретическим и практическим программированием. Результатом такого подхода является надежная и читаемая программа.
  • Си — эффективный язык. Его структура позволяет использовать возможности современных ЭВМ. На языке Си программы обычно отличаются компактностью и быстротой исполнения.
  • Си — переносимый, или мобильный, язык. Если модификации все-таки необходимы, то часто они могут быть сделаны путем простого изменения нескольких элементов в “головном” файле, который сопутствует главной программе. Он предоставляет исключительные возможности для переноса программ.
  • Компиляторы с данного языка реализованы почти на 40 типах вычислительных систем, начиная от- 8-разрядных микропроцессоров и кончая CRAY-1 одним из самых мощных в настоящее время суперкомпьютеров.
  • Си — мощный и гибкий язык. Программы, написанные на Си, используются для решения физических и технических проблем и даже для производства мультипликационных фильмов.
  • Си обладает рядом замечательных конструкций управления, обычно ассоциируемых с ассемблером.
  • Си — удобный язык. Он достаточно структурирован, чтобы поддерживать хороший стиль программирования, и вместе с тем не связывать вас с ограничениями.

Глава 2. Язык программирования Java

Общие сведения о языке программирования Java

Java— строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Разработка ведётся сообществом, организованным через Java Community Process, язык и основные реализующие его технологии распространяются по лицензии GPL. Права на торговую марку принадлежат корпорации Oracle.

Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года. На 2019 год Java — один из самых популярных языков программирования.

Основные особенности языка Java

Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером), вызывают немедленное прерывание.

Часто к недостаткам концепции виртуальной машины относят снижение производительности.

Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:

  • применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
  • обширное использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
  • аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами архитектуры ARM).

По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее.

С другой стороны, для большинства из них потребление памяти Java-машиной было в 10—30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и большее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.

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

Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.

История создания Java

История Java восходит к 1991 году, когда группа инженеров из компании Sun Microsystems под руководством Патрика Нотона (Patrick Naughton) и члена совета директоров (и разностороннего специалиста) Джеймса Гослинга (Рис. 4) (James Gosling) занялась разработкой языка, который можно было бы использовать для программирования бытовых устройств, например, контроллеров для переключения каналов кабельного телевидения.

Картинки по запросу "Джеймс Гослинг""

Рис. 4. Джеймс Гослинг

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

Кроме того, разные производители могут выбирать разные процессоры для контроллеров, и поэтому было очень важно не привязываться к конкретной их архитектуре. Проект создания нового языка получил кодовое название "Green".

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

Никлаус Вирт (Рис. 5), создатель язы­ка Pascal, в свое время разработал переносимый язык, генерирующий промежуточный код для некоей гипотетической машины.

Картинки по запросу "Никлаус Вирт""

Рис. 5. Никлаус Вирт

Такие машины называются виртуаль­ными, отсюда термин — виртуальная машина ]ava (JVM). Этот промежуточный код можно выполнять на любой машине, имеющей соответствующий интерпретатор.

Инженеры, работавшие над проектом "Green", также использовали виртуальную машину, что решило основную проблему переносимости кода.

Большинство сотрудников компании Sun Microsystems имели опыт работы с операционной системой Unix, поэтому в основу разрабатываемого ими языка был положен язык C++, а не Pascal. В частности, они сделали язык объектно-, а не процедурно-ориентированным. Как сказал Гослинг в своем интервью: "Язык — это всегда средство, а не цель". Сначала Гослинг решил назвать его Oak (Дуб). (Возможно потому, что он любил смотреть на дуб, росший прямо под окнами его рабочего кабинета в компании Sim Microsystems.)

Затем сотрудники компании узнали, что слово "Oak" уже используется в качестве имени ранее созданного языка программирования, и изменили название на Java. Этот выбор был сделан по наитию.

В 1992 г. в рамках проекта "Green" была выпущена первая продукция под названием "*7". Это было устройство интеллектуального дистанционного управления. (Умещаясь в корпусе 6x4x4 дюйма, оно имело мощность рабочей станции SPARC.)

К сожалению, ни одна из компаний-производителей электронной техники не заинтересовалась этой разработкой.

Затем группа стала заниматься созданием устройства для кабельного телевидения, которое могло бы осуществлять новые виды услуг, например, включать видеосистему по требованию. И снова они не получили ни одного контракта. Примечательно, что одной из компаний, согласившихся все-таки с ними сотрудничать, руководил Джим Кларк (Jim Clark) — основатель компании Netscape, впоследствии сделавшей очень много для развития языка Java.

Весь 1993 год и половину 1994 года продолжались безрезультатные поиски покупателей продукции, разработанной в рамках проекта "Green", получившего новое на­звание — "First Person, Inc.". Патрик Нотой, один из основателей группы, в основном занимавшийся маркетингом, налетал в общей сложности более 300 тысяч миль, пытаясь продать разработанную технологию. Работа над проектом "First Person, Inc." была прекращена в 1994 г.

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

В 1994 году большинство пользователей применяли некоммерческий веб-браузер Mosaic, разработанный в суперкомпьютерном центре университета штата Иллинойс в 1993 г. Частично этот браузер был написан Марком Андреессеном (Mark Andreessen), подрядившимся работать за 6,85 доллара в час. В то время Марк заканчивал университет, и браузер был его дипломной работой. (Затем он достиг известности и успеха как один из основателей и ведущих специалистов компании Netscape.)

В своем интервью журналу Sun World Гослинг сказал, что в середине 1994 г. Разработчики нового языка поняли: "Нам нужно создать высококачественный браузер.

Такой браузер должен представлять собой приложение, соответствующее технологии "клиент-сервер", в которой жизненно важным является именно то, что мы сделали: архитектурная независимость, выполнение в реальном времени, надежность, безопасность — вопросы, которые были не так уж важны для рабочих станций. И мы создали такой браузер".

Сам браузер был разработан Патриком Йотоном и Джонатаном Пэйном (Johnatan Payne). Позднее он был доработан и получил имя Hotjava. Чтобы продемонстрировать все возможности Java, браузер был написан на этом языке.

Но разработчики не забывали о таких средствах, которые теперь называются аплетами, наделив свой продукт способностью выполнять код на веб-страницах. Программный продукт, подтверждавший действенность новой технологии, был представлен 23 мая 1995 года на выставке SunWorld '95 и вызвал всеобщий интерес к Java, сохраняющийся и по сей день.

Компания Sun Microsystems выпустила первую версию Java в начале 1996 г.

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

В ней даже отсутствовали средства вывода на печать. Грубо говоря, версия Java 1.0 еще не была готова. В следующей версии, Java 1.1, были устранены наиболее очевидные недостатки, улучшены средства рефлексии и реализована новая модель событий для программирования ГПИ. Но несмотря на это, ее возможности были все еще ограничены.

Изначально язык назывался Oak («Дуб»), разрабатывался Джеймсом Гослингом для программирования бытовых электронных устройств.

Из-за того, что язык с таким названием уже существовал, вскоре Oak был переименован в Java. Назван в честь марки кофе Java, которая, в свою очередь, получила наименование одноимённого острова (Ява), поэтому на официальной эмблеме языка изображена чашка с горячим кофе.

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

В результате работы проекта мир увидел принципиально новое устройство, которое опередило своё время более чем на 10 лет.

Устройство получило название Star7, но из-за большой стоимости в 50 долларов не смогло произвести переворот в мире технологии и постепенно забылось.

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

С середины 1990-х годов язык стал широко использоваться для написания клиентских приложений и серверного программного обеспечения. Тогда же определённое распространение получила технология Java-апплетов — графических Java-приложений, встраиваемых в веб-страницы; с развитием возможностей динамических веб-страниц в 2000-е годы технология стала применяться редко.

Сравнение языков C(С++) и Java

Как и Java, C# изначально предназначался для веб-разработки, и примерно 75% его синтаксических возможностей аналогичны языку программирования Java. Его также называют «очищенной версией Java». 10% позаимствовано из C++, а 5% – из Visual Basic. И около 10% C# – это реализация собственных идей разработчиков.

Несмотря на весьма существенные различия между компонентной объектной моделью COM (основного стандарта Microsoft для компонентного проектирования и реализации программного обеспечения) и моделью Java, языки программирования имеет довольно много общего.

Единая среда выполнения программ основана на использовании промежуточного языка IL (Intermediate Language — промежуточный язык), исполняющего почти ту же роль, что и байт-код виртуальной машины Java. Используемые в рамках технологии .NET компиляторы с различных языков транслируют программы в IL-код. Так же, как и байт-код Java, IL-код представляет собой команды гипотетической стековой вычислительной машины. Но есть и разница в устройстве и использовании IL.

Во-первых, в отличие от JVM, IL не привязан к одному языку программирования. В составе, предварительных версий Microsoft.NET имеются компиляторы языков Си++, Си#, Visual Basic. Независимые разработчики могут добавлять другие языки, создавая свои компиляторы в IL-код.

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

Кик Рэдек из Microsoft считает С# более сложным языком, чем Java. По его мнению, «язык Java был построен таким образом, чтобы уберечь разработчика от выстрела в собственную ногу» (англ. «Java was built to keep a developer from shooting himself in the foot»), а «С# был построен так, чтобы дать разработчику пистолет, но оставить его на предохранителе» (англ. «C# was built to give the developer a gun but leave the safety turned on»).

Далее будет представлена информация о версиях.

Работа над C# началась в декабре 1998 года. Проект получил кодовое название COOL (C-style Object Oriented Language).

Первая бета-версия C# 1.0 увидела свет летом 2000 года, а в феврале 2002 вместе с Microsoft Visual Studio вышла окончательная версия языка.

Так как C# сочетает лучшие стороны предшествующих ей популярных языков программирования в виде C, Java и C++, программистам легко осуществить переход на C#, основываясь на знаниях любого из перечисленных языков.

Главным отличием от предшественников стала возможность написания компонентов. В C# появились такие средства, как события, методы и свойства.

В 2005 году вышел окончательный релиз версии C# 2.0. Это укрепило его позиции на рынке. Добавление новых возможностей, таких как анонимные методы, обобщения, частичные и параметризованные типы значительно расширили возможности применения C#.

Во второй версии была добавлена поддержка 64-х разрядных вычислений, что открыло возможность увеличения адресного пространства. Также было реализовано создание триггеров, хранимых процедур и типов данных на .NET языках.

Версия 3.0, вышедшая в 2008 году, позволила C# вырваться вперед в «гонке вооружений» языков программирования.

Среди нововведений C# 3.0 – язык интегрированных запросов (LINQ); не явно типизированные переменные и методы расширения; Lambda-выражения, которые назначают реализацию кода делегатам с помощью нового, более простого синтаксиса. Особенно «отличились» Lambda-выражения вместе с языком интегрированных запросов.

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

Новинкой в C# 3.0 также стали так называемые «ленивые вычисления», которые производят необходимые вычисления только при запросе нужных соответствующих данных.

В 2010 году была выпущена версия C# 4.0. Ее главным дополнением к предыдущим версиям стали именованные и необязательные аргументы.

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

Не менее важное новшество – тип dynamic. Он позволяет осуществлять проверку на соответствие типов объектов не на этапе компиляции, а непосредственно во время выполнения программы.

Параллельно появились новшества в .NET Framework 4.0 – библиотека распараллеливания задач (TPL) и параллельный вариант языка интегрированных запросов (PLNQ).

Их поддержка позволяет осуществить параллельность выполнения кода в компьютерах с многоядерными процессорами или несколькими одноядерными.

Версия C# 5.0 появилась в 2012 году. В ней было реализовано совсем немного нововведений:

  • Асинхронные методы
  • Операция получения сведений о вызывающем объекте

Стоит затронуть вопрос перспектив C#.

«Все больше компаний для крупных проектов выбирает платформу Microsoft .NET, пишет в своем блоге Михаил Флёнов. – И тут все просто, Java потерял свободу, когда ушел под крыло Oracle. До этого перехода Sun тратил огромные ресурсы на этот язык и много делалось ради свободы, открытого кода и просто Java. С переходом под крыло Oracle язык все же потерял, стал развиваться медленнее.

В случае с .NET, Microsoft делает намного больше усилий. Язык развивается все ещё достаточно серьёзно, компания выпустила бесплатный редактор кода под все платформы, и как раз начинает вкладываться в открытость, делает все, что освобождает .NET.

Трудно сейчас сказать, что будет с Windows в будущем, но пока что эта платформа останется самой популярной. А тут C# набирает популярность. Майкрософт продолжает вкладываться и в свою мобильную платформу и если у них эти действия принесут плоды, то C# может ещё более серьёзно выйти вперед» заключает он.

Заключение

Язык C++ является стремительным и мощным рывком в процессе развития программирования.

Сначала все компьютеры были одинаковыми и использовали одинаковую архитектуру, но со временем появилась необходимость в операционной системе, которая бы взяла на себя управление базовыми операциями над «железом» компьютеров.

Так появились несколько ОС. Деннис Ритчи был человеком, который переписал одну из них — Unix — с ассемблера на С.

Для того, чтобы «обучать» операционные системы, необходим был язык программирования, который говорил бы им, что делать. Таким образом, программирование — это процесс создания набора команд, которые говорят, какие операции должна исполнять ОС.

C — низкоуровневый язык программирования, который поддерживает прямое управление «железом». Он был разработан Деннисом Ритчи в 1973-ем году в AT&T Labs.

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

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

Множество из профессиональных программистов используют именно его во время разработки различного рода проектов.

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

C++ является один из самых популярных языков программирования, его широко используют для того, чтобы разработать программное обеспечение.

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

Существует много реализаций языка C++, являющиеся как бесплатные, так и коммерческие и для разных платформ.

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

С — язык общего назначения. В нем нет классов, нет интерфейсов. Зато в нем есть гораздо более полезные и мощные инструменты — например, указатели и многие другие, позволющие манипулировать памятью прямо во время исполнения программы. Также С использовался как «строительный материал» для других, более высокоуровневых языков: Java, D, C#. C++ и Objective-C после компиляции превращаются в код на C, который затем компилируется в машинный код ради более быстрого исполнения.

Список использованной литературы

1. «Бьерн Страуструп. Язык программирования С++» , изд. Бином, М. -1136с.

2. Джесс либерти, «Освой самостоятельно C++ за 21 день», изд. Дом «Вильямс», Москва - Санкт-Петербург - Киев, 2001. - 834с.

3. Джон Родли Создание Java-апплетов.- TheCoriolis Group,Inc.,1996, Издательство НИПФ "ДиаСофт Лтд.",1996 - 654с.

4. Герберт Шилдт. C + + для начинающих. Пер. с англ. М: ЭКОМПаблишерз 2007. - 546с.

5. Герберт Шилдт. Полный справочник по C + + 4-е издание. Пер. с англ. М: издательский дом « Вильямс » 2010. - 543с.

6. Майкл ЭферганJava: справочник.- QUE Corporation, 1997, Издательство "Питер Ком", 1998. - 687с.