Файл: История возникновения и развития языка программирования С++ и java.pdf

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

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

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

Добавлен: 01.04.2023

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

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

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

Введение

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

Зачем нужны программы? Современная цивилизация основана на компьютерных программах. Не зная, как работают эти программы, вы будете вынуждены верить в «волшебство», и многие интересные, выгодные и социально полезные сферы деятельности останутся для вас закрытыми. [7, с.25]

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

Цель работы:

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

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

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

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


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

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

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

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

1.1 История возникновения языка Java

Несмотря на все разговоры о Java как языке интернет-программирования, Java в действительности является полноценным языком программирования, способным решить практически все задачи, решаемые на других языках. [12, с. 69]

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

Главными причинами, побуждающими к созданию нового языка программирования , служат совершенствование искусства программирования и изменения в вычислительной среде. И Java не является исключением из этого правила. Опираясь на богатое наследие С и С++, этот язык программирования расширен и дополнен средствами, отражающими текущее положение дел в программировании. Отвечая потребностям возникшей интерактивной среды, Java представляет средства, упрощающие создание прикладных программ с распределенной архитектурой. [11, с.27]

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


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

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

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

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

Ключевой проблемой процедурного программирования является то, что программные модули не вполне адекватно отражают сущности реального мира и потому не особенно пригодны для многократного использования. [3, c.67]

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


Язык C++ развился из C, который в свою очередь был создан на основе двух предшествующих языков – BCPL и B. Язык BCPL был создан в 1967 году Мартином Ричардом как язык для написания компиляторов и программного обеспечения операционных систем. Кен Томпсон предусмотрел много возможностей в своем языке B – дубликате BCPL и использовал B для создания ранних версий операционной системы Unix в Bell Laboratories в 1970 году на компьютере DEC PDP-7. И BCPL, и B были «нетипичными» языками – каждый элемент данных занимал одно «слово» в памяти и бремя обработки элемента данных, например, как целого или действительного числа падало на плечи программиста. [7, с.61]

Основным достоинством языка Си по сравнению с языками BCPL и Би является введение в него типов данных. В течение долгих лет фактическим стандартом языка С была его версия, которая поставлялась с операционной системой UNIX. Язык С был формально стандартизован в декабре 1989 г., когда Национальный институт стандартизации США (American National Standards Institute — ANSI) принял стандарт С.

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

В C++ есть много элементов, которые «приукрашивают» язык С, но что более важно, в нем предусмотрены возможности объектно-ориентированного программирования. [3, c.62]

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


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

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

FORTRAN был первым высокоуровневым языком программирования (термин высокоуровневый означает, что язык состоит не из машинных команд, а из инструкций, понятных человеку и близких к естественному языку). Долгое время FORTRAN был единственным языком, применяемым для научных вычислений. [2, c.26]

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

С точки зрения функциональных возможностей на языке С можно решать все задачи, решаемые на FORTRAN, Java и других современных языках программирования. Различие между ними не в возможностях, а в удобстве и простоте работы с большими программами. В этом отношении Java значительно превосходит С. [2, c.26]