Файл: История возникновения и развития языка программирования C++ и Java (Происхождение языка Java).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 230

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

В наши дни значение информационных технологий приняло колоссальные размеры. Представить повседневную жизнь без компьютера и интернета на сегодняшний момент весьма сложно. Но все гаджеты, которые помогают нам дома и на работе, используют программы, для создания которых необходимы языки программирования. В современном мире программист является очень важной и востребованной профессией. Роль ее растет и будет расти в ближайшие годы очень динамично. Этим обусловлена актуальность темы работы. Прогресс компьютерных технологий заставлял людей придумывать и разрабатывать новые системы для записи более продвинутых алгоритмов. Эти системы и есть языки программирования. У языка программирования две цели: дать программисту аппарат для того, чтобы задать определенные для выполнения действия, и сформировать концепции, которые программист будет использовать для выполнения этих действий. Для того, чтобы объединить обе этих цели в себе, язык программирования должен быть одновременно «близким к машине» и «близким к решаемой задаче», чтобы программист легко использовал все основные машинные аспекты и чтобы концепция решения задачи могла быть выражена доступной для понимания. Java и C++ можно рассматривать как два языка-потомка C, разработанных из различных соображений и пошедших, вследствие этого, по разным путям. Отличия языков привели к ожесточенным спорам между сторонниками двух языков о том, какой из них лучше. Но в целом большинство программистов считают, что C++ и Java не являются конкурентами, так как применяются в разных областях. При этом языки очень похожи друг на друга настолько, что если вы изучаете один из них, то вы автоматически усваиваете 90% другого.

Цель работы:

Изучить историю возникновения и развития языка программирования C++ и Java.

Чтобы достичь указанную цель, необходимо следующее:

  • изучить источники информации по указанной теме;
  • узнать историю языков C++ и Java;
  • рассмотреть развитие языков C++ и Java/

Объект исследования:

Языки программирования C++ и Java.

Предмет исследования:

История, структура, польза, потенциал C++ и Java

Глава 1. История возникновения и развитие языка Java.


1.1 Происхождение языка Java

Язык Java тесно связан с языком C++, который, в свою очередь, является прямым наследником языка С. От обоих этих языков унаследованы многие особенности языка Java. От С язык Java унаследовал свой синтаксис, а большинство его объектно-ориентированных свойств были взяты из C++. Собственно говоря, ряд определяющих характеристик Java был перенесен -или разработан в ответ на возникшие потребности — из его предшественников. Более того, создание Java своими корнями уходит глубоко в процесс усовершенствования и адаптации, который происходит в языках компьютерного программирования на протяжении нескольких последних десятилетий. Поэтому прежде всего необходимо рассмотреть последовательность событий и факторы, которые привели к появлению языка Java, после чего станет понятно, что каждое новшество в архитектуре языка было обусловлено необходимостью решения той или иной фундаментальной проблемы, которую не могли решить существовавшие до этого языки. И Java — не исключение в этом отношении.

1.2 Начало зарождения современного языка программирования: язык С

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

между простотой использования и предоставляемыми возможностями;

между безопасностью и эффективностью;

между устойчивостью и расширяемостью.

До появления языка С программистам, как правило, приходилось выбирать между языками, которые позволяли оптимизировать тот или иной набор характеристик. Например, хотя FORTRAN можно было использовать при написании достаточно эффективных программ для научных приложений, он не очень подходил для создания системного кода. Аналогично, в то время как язык BASIC был очень прост в изучении, он предоставлял не очень много функциональных возможностей, а его недостаточная структурированность ставила под сомнение его полезность при создании крупных программ. Язык ассемблера можно использовать для создания очень эффективных программ, но его трудно изучать и эффективно использовать, не говоря уже о том, что отладка ассемблерного кода часто оказывается весьма сложной задачей. Также свою роль сыграло то, что ранние языки программирования, такие как BASIC, COBOL и FORTRAN, были спроектированы без учета принципов структурирования. Основными средствами управления программой в них были операторы безусловного перехода GOTO. В результате программы, созданные с применением этих языков, тяготели к созданию так называемого “макаронного кода” — множества запутанных переходов и условных ветвей, которые делали программу буквально недоступной для понимания. Хотя такие языки как Pascal и структурированы, они не были предназначены для создания максимально эффективных программ и были лишены многих важных функций, необходимых для применения этих языков к написанию широкого круга программ. (В частности, учитывая существование нескольких стандартных диалектов Pascal, было нецелесообразно применять этот язык для создания кода системного уровня.)


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

Язык C был изобретен и впервые реализован Деннисом Ритчи в 1972 году на компьютере DEC PDP-11, работающем под управлением операционной системы UNIX. Язык С явился результатом процесса разработки, начавшегося с предшествующего языка BCPL, разработанного Мартином Ричардсом. BCPL повлиял на язык, получивший название В, который был изобретен Кеном Томпсоном и в начале 70-х гг. привел к появлению языка С. Основным достоинством языка Си по сравнению с языками BCPL и Би является введение в него типов данных. В течение долгих лет фактическим стандартом языка С была его версия, которая поставлялась с операционной системой UNIX. Язык С был формально стандартизован в декабре 1989 г., когда Национальный институт стандартизации США (American National Standards Institute — ANSI) принял стандарт С.

Многие считают, что создание языка С – это начало современного этапа развития компьютерных языков. Он успешно объединил конфликтующие компоненты, которые доставляли столько неприятностей в предшествующих языках. Результатом явился мощный, гибкий, структурированный язык, изучение которого было сравнительно простым. Кроме того, ему была присуща еще одна, почти непостижимая особенность: он был языком программиста. До появления С языки программирования проектировались в основном либо в качестве академических упражнений, либо бюрократическими организациями. Но язык C был совсем из другой категории. Он был спроектирован, реализован и разработан действительно работающими программистами и отражал их подход к программированию. Его функции были отлажены, проверены и многократно переработаны людьми, которые действительно использовали этот язык. Поэтому язык C по-настоящему нравился программистам в использовании. Он быстро приобрел много приверженцев, которые не могли поверить своему счастью. Поэтому язык С получил быстрое и широкое признание в программистском сообществе. Если говорить коротко: язык C был разработан программистами для программистов. Эту особенность унаследовал и Java.


1.3 Следующая ступень: C++

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

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

Первым языком программирования, который получил широкое распространение, был, конечно же, FORTRAN. Хотя этот язык и явился первым впечатляющим шагом, его вряд ли можно считать языком, который способствует созданию четких и легких для понимания программ. 60-е гг. знаменовались рождением структурного программирования. Этот метод программирования наиболее ярко проявился в таких языках, как С. Использование структурированных языков впервые предоставило программистам возможность достаточно легко создавать программы средней сложности. Однако даже при использовании методов структурного программирования по достижении проектом определенного размера его сложность начинала превышать ту, с которой программист мог справиться. К началу 80-х гг. сложность многих проектов начала превышать ту, с которой можно было справиться с использованием структурного подхода. Для решения этой проблемы был изобретен новый способ программирования, получивший название объектно-ориентированного программирования (ООП). Объектно-ориентированное программирование подробно рассматривается в последующих главах этой книги, но мы все же приведем краткое определение: ООП — это методология программирования, которая помогает организовывать сложные программы за счет использования наследования, инкапсуляции и полиморфизма. 


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

1.4 Предпосылки создания языка Java

К концу 80-х-началу 90-х гг. объектно-ориентированное программирование с применением языка C++ стало основным методом программирования. Действительно, в течение некоторого непродолжительного времени казалось, что программисты, наконец, изобрели идеальный язык. Поскольку язык C++ сочетал в себе высокую эффективность и стилистические элементы языка С с объектно- ориентированным подходом, этот язык можно было использовать для создания самого широкого круга программ. Однако, как и в прошлом, уже вызревали факторы, которые должны были, в который раз, стимулировать развитие компьютерных языков. Пройдет еще несколько лет, и World Wide Web и Интернет достигнут критической массы. Это приведет к еще одной революции в программировании.

1.5 Создание языка Java

Начало разработке языка Java было положено в 1991 г. Джеймсом Гослингом (James Gosling), Патриком Нотоном (Patrick Naughton), Крисом Вартом (Chris Warth), Эдом Франком (Ed Frank) и Майком Шериданом (Mike Sheridan), работавшими в компании Sun Microsystems, Inc. Разработка первой работающей версии заняла 18 месяцев. Вначале язык получил название “Oak” (“Дуб”), но в 1995 г. он  был переименован в “Java”. Между первой реализацией языка Oak в конце 1992 г. и публичным объявлением о создании Java весной 1995 г. множество других людей приняли участие в проектировании и развитии этого языка. Билл Джой (Bill Joy), Артур ван Хофф (Arthur van Hoff), Джонатан Пэйн (Jonathan Payne), Франк Иеллин (Frank Yellin) и Тим Линдхольм (Tim Lindholm) внесли основной вклад в развитие исходного прототипа. 

Как ни странно, первоначальной побудительной причиной создания языка Java послужил вовсе не Интернет! Основная причина — потребность в независящем от платформы (т.е. архитектурно нейтральном) языке, который можно было бы использовать для создания программного обеспечения, встраиваемого в различные бытовые электронные устройства, такие как микроволновые печи и устройства дистанционного управления. Как ни трудно догадаться, в качестве контроллеров используется множество различных типов процессоров. Проблема применения языков С и C++ (как и большинства других языков) состоит в том, что написанные на них программы должны компилироваться для конкретной платформы. Хотя программы C++ могут быть скомпилированы практически для любого типа процессора, для этого требуется наличие полного компилятора C++, предназначенного для данного процессора. Проблема в том, что создание компиляторов обходится дорого и требует значительного времени. Поэтому требовалось более простое и экономически выгодное решение. Пытаясь найти такое решение, Гослинг и другие начали работу над переносимым, не зависящим от платформы языком, который можно было бы использовать для создания кода, пригодного для выполнения на различных процессорах в различных средах. Вскоре эти усилия привели к созданию языка Java.