Файл: История возникновения и развития языка программирования Си (С++) и Java.pdf
Добавлен: 01.04.2023
Просмотров: 78
Скачиваний: 1
СОДЕРЖАНИЕ
1. История возникновения и развития Си (С++)
1.1 Общая характеристика и история создания языка Си (С++)
1.2 История развития языка Си (С++)
2. История создания и возникновения языка программирования Java
2.1 Общая характеристика и история создания языка программирования Java
2.2 История развития языка программирования Java
ВВЕДЕНИЕ
В настоящее время одним из основных языков программирования, используемым для разработки коммерческих программных продуктов является Си (С++). После появления языка программирования Jаvа господство Си (С++) слегка поколебалось, однако, вскоре в последнее время программисты поспешили вернуться к своей прежней привязанности. Данные языки программирования имеют общие особенности, примерно 90% совпадений при изучении.
Язык программирования С++ успешно используется во многих областях приложения, далеко выходящих за указанные рамки. Применение С++ осуществляется на многих компьютерах – от мини- до супер-ЭВМ и на всех операционных системах [1].
Требования современных приложений к безопасности, высокой производительности и работоспособности распределенной среде, нейтральными к архитектуре, что поспособствовали пересмотру взглядов на сам процесс создания и распределения приложений на множестве ЭВМ различной архитектуры. Требования к переносимости создали необходимость отказаться от обычного принятого способа создания и доставки бинарных файлов, которые содержали машинные коды и, следовательно, были привязаны к определенной платформе. Тогда компания SunMicrosystems создает систему разработки Java, которая удовлетворяет всем вышеперечисленным требованиям.
Объектом исследования является история возникновения и развития языков программирования Си (С++) и Java.
Предметом исследования изучение и ознакомление с историей возникновения и развития языков программирования Си (С++) и Java.
Целью данной работы является рассмотреть и проанализировать историю возникновения и развития языков программирования Си (С++) и Java.
Для решения поставленной цели предложены следующие задачи:
- изучить историю создания и общую характеристику языка программирования Си (С++);
-рассмотреть историю развития языка программирования Си (С++);
-проанализировать историю создания и общую характеристику языка программирования Java;
-рассмотреть историю развития языка программирования Java;
-сравнить основные характеристики языков программирования Си (С++) и Java.
Содержание курсовой работы содержит введение, основную часть, представленную двумя главами, заключение и список литературы.
1. История возникновения и развития Си (С++)
1.1 Общая характеристика и история создания языка Си (С++)
Одними из самых распространенных языков программирования в мире являются С и С++. Являясь основными языками, применяемые в разработке не только системного программного обеспечения, но и прикладного.
Особенностями данного языка являются следующие особенности:
1. Эффективность заключается в том, что программы, которые написаны на языке Си (С++) небольшого размера с одновременно большой скоростью исполнения [1].
2. Лаконичность означает то, что запись алгоритма является выразительной и краткой.
3. Компактность. Язык содержит небольшое количество встроенных средств и ключевых слов.
4. Мощность применения достигается при помощи использования большого числа библиотек.
5. Переносимость. Компиляторы созданы для всех операционных систем и аппаратных платформ, вследствие чего программа легко компилируема и существует возможность запуска программы с любого места нахождения [2].
Недостатками языка программирования является слабый контроль преобразования типов и незащищенность в процессе работе с адресами и динамической памятью, в результате чего в программе легко совершить ошибку, которую впоследствии сложно будет обнаружить. С другой стороны, эти недостатки и дали возможность создать исполняемый код, по эффективности приближающийся к программе на языке Ассемблера.
Возникновение языка Си (С++) относится к 1981 году, который многие называют “С с классами“. Автором языка является сотрудник фирмы Bell Labs Бьёрн Страуструп, совершивший ряд усовершенствований к языку C под собственные нужды [4]. Когда в конце 1970-х годов Страуструп начал работать в Bell Labs над задачами теории очередей (в приложении к моделированию телефонных вызовов), он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки большого программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки большого программного обеспечения.
Бъярн Страуструп добавил в привычный Си методы объектного языка - классы, служащие для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом. Благодаря данным средствам появилась возможность не только писать объектно-ориентированные программы, но и создавать библиотеки шаблонов, классов - т.е. расширить инструментарий пользователя и сферу применения самого языка. С/С++ объединяет в себе вышесказанные достоинства С и новые возможности С++, предоставляя возможность “изнутри“ изучить принципы программирования высокого уровня. Язык С++ содержит в себе средства и методы как высокоуровневого, так и низкоуровневого программирования. К первым относятся классы, структуры, механизмы наследования и позднего связывания, шаблоны. Ко вторым можно отнести механизм указателей, работу с битами символов, работу с механизмом прерываний. Благодаря этому С++ весьма привлекательный для целей решения обширного круга задач [1].
Вспомнив опыт своей диссертации, Страуструп решил дополнить язык C (преемник BCPL) возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C). В первую очередь в C были добавлены классы (с инкапсуляцией), наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C with classes» («Си с классами»), стали доступны с 1980 года [3].
Разрабатывая C с классами, Страуструп написал программу cfront[en] — транслятор, перерабатывающий исходный код C с классами в исходный код простого C. Это позволило работать над новым языком и использовать его на практике, применяя уже имеющуюся в UNIX инфраструктуру для разработки на C. Новый язык, неожиданно для автора, приобрёл большую популярность среди коллег и вскоре Страуструп уже не мог лично поддерживать его, отвечая на тысячи вопросов [4].
При создании C++ Бьёрн Страуструп хотел [5] gолучить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.
Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
Избегать особенностей, которые зависят от платформы или не являются универсальными.
«Не платить за то, что не используется» — никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
Не требовать слишком усложнённой среды программирования.
Выбор именно C в качестве базы для создания нового языка программирования объясняется тем, что язык C:
1. является многоцелевым, лаконичным и относительно низкоуровневым языком;
2. подходит для решения большинства системных задач;
3. исполняется везде и на всём;
4. стыкуется со средой программирования UNIX. [1]
Несмотря на ряд известных недостатков языка C, Страуструп пошёл на его использование в качестве основы, так как «в C есть свои проблемы, но их имел бы и разработанный с нуля язык, а проблемы C нам известны». Кроме того, это позволило быстро получить прототип компилятора (cfront), который лишь выполнял трансляцию добавленных синтаксических элементов в оригинальный язык C [7].
По мере разработки C++ в него были включены другие средства, которые перекрывали возможности конструкций C, в связи с чем неоднократно поднимался вопрос об отказе от совместимости языков путём удаления устаревших конструкций. Тем не менее, совместимость была сохранена из следующих соображений:
сохранение действующего кода, написанного изначально на C и прямо перенесённого в C++;
исключение необходимости переучивания программистов, ранее изучавших C (им требуется только изучить новые средства C++);
исключение путаницы между языками при их совместном использовании («если два языка используются совместно, их различия должны быть или минимальными, или настолько большими, чтобы языки было невозможно перепутать»).
Язык С (по-русски произносится как «Си») был разработан сотрудником фирмы AT&T из подразделения Bell Labs Денисом Ритчи в 1972г. во время совместной работы с Кеном Томпсоном над ОС UNIX. Прообразом С послужил язык Би (B), разработанный К. Томпсоном. Также большое влияние на С имел язык BCPL, автором которого был М. Ричардсоном [8].
Язык С разрабатывался в основном как инструмент для системного программирования. Благодаря прекрасному сочетанию лаконичности конструкций и богатства выразительных возможностей язык С сумел найти быстрое распространение и стать одним из самых популярных языков как прикладного, так и системного программирования. Компиляторы языка С работоспособны почти на всех типах современных ПК в операционных системах Windows, Mac OS, Linux, FreeBSD, Solaris и др.
В отличие от многих языков программирования (Ада, Алгол-60 и т.д.), вступавшими в силу только после принятия соответствующих национальных и международных стандартов, язык С изначально создавался в целях применения его как рабочего инструмента, который не ставил своей задачей широкое распространение. До 1989 года на язык С стандарта не существовало, и в роли формального описания авторы компиляторов (разработчики) применяли книгу Б. Кернигана и Д. Ритчи (первое издание), которая вышла в 1978 году в США ( на русский язык она была переведена в 1985году). Роль этой книги как неформального стандарта для языка С осталась и по сей день. Не случайно во всей литературе и различной документации по компиляторам ссылка на эту работу обозначается специальным сокращением K&R [8].
Первый официальный стандарт языка С приняли в 1989годув Американском национальном институте стандартов (American National Standards Institute - ANSI). Эту версию языка на практике обозначается С89. Также, данный стандарт приняла и Международная организация стандартов (International Standarts Organization - ISO). В 1995г. стандарт С89 был незначительно изменен.
Разработка и усовершенствование языка С++ вызвал от его создателя значительных усилий в течении 80-х - 90-х годов. В итоге, в 1998г. был принят ANSI/ISO-стандарт для языка С++. Если говорить общими словами, язык С++ - это объектно-ориентированная, усовершенствованная версия языка С. С++ построен на основе версии С89, которая содержала в себе все изменения 1995г., и теперь эту версию С89 называют С-подмножеством языка С++. Несмотря на то, что язык С++ задумывался как набор объектно-ориентированных расширений для языка С, впоследствии он смог развиться как самостоятельный язык программирования. Сегодня его новые средства почти в два раза увеличили объем исходного языка. Не нужно никаких доказательств, что С++ является одним из самых мощных компьютерных языков, разработанных до сих пор [4].
В 1999 году приняли второй ANSI/ISO - стандарт для языка С. Эта версия называется С99, включающая набор усовершенствований, а также некоторые новые средства. Одни из этих «новых» средств пришли из языка С++, а другие - представляют пользователю совершенно иные, новые возможности. Таким образом, отдельные элементы, привнесенные в С99, несовместимы с языком С++. Это значит, что с появлением версии С99 стандарт языка С больше не считается чистым подмножеством языка С++. К счастью, причина многих «несовместимостей» связана со средствами специального назначения, которые можно легко преодолеть. В итоге, и этот вариант языка сдает возможность создавать программы, которые будут совместимы с языком С++ [3-5].
В последующие несколько лет велись работы с целью вырабатывания новых стандартов языков С и С++, завершившиеся в конце 2011года.
В октябре 2011года появился новый стандарт языка С++Джесс либерти, «Освой самостоятельно C++ за 21 день», изд. Дом «Вильямс», Москва - Санкт-Петербург - Киев, 2001. - С.14.. Его обозначение- C++11 или ISO/IEC 14882:2011. Полная его поддержка обещана в GCC 4.7.
А в декабре 2011г. принимают новый стандарт и для языка С. Эту версию условно называют С11 или ISO/IEC 9899:2011. Часть её возможностей уже сейчас поддерживается компилятором GCC.
Сегодня существует очень огромное количество С-подобных языков - языков, в основу которых лег язык С. Наиболее имеющие важность из них -- это языки C++ Бьярни Страуструпа, Java фирмы Sun и С# (читается Си-Шарп) фирмы Microsoft.