Файл: История возникновения и развития языка программирования Си (С++) и Java.pdf
Добавлен: 03.07.2023
Просмотров: 54
Скачиваний: 3
Введение
Высокоуровневые языки программирования характеризуются наличием смысловых конструкций для описания операций. Их изучение занимает немало времени, а применение на практике требует внимательности и понимания основных структур и правил синтаксиса и лексики. Но при этом владение языками высокого уровня позволяет создавать большие, красочные, многофункциональные проекты в рекордные сроки.
К высокому уровню относятся Pascal, Java, C, C++, C#, Delphi и многие другие. Используются они для написания программного обеспечения и прикладных программ.
Наиболее востребованные языки программирования Какие же самые востребованные языки программирования на сегодняшний день? В последние годы наиболее популярными и востребованными считаются Java, C, C++, Python, C#, которые входят в топы языков программирования. Именно они составляют основу современных программ и используются при написании любого крупного проекта. Более 70% программистов работают с этими языками. Прогнозируется, что в ближайшие 10 лет они будут все так же востребованы, как и сегодня.
Цель исследования: История возникновения и развития языка программирования Си (С++) и Java.
Объект исследования: языки программирования Си (С++) и Java.
Задачи исследования:
- Изучить историю возникновения и развития языка Си
- Изучить историю возникновения и развития языка Си++
- Изучить историю стандартов Си++
- Изучить начало разработки языка Java
- Изучить связь языков Java и C++
- Изучить обзор версий Java
Глава 1. История развития языка Си и Си++
1.1 Язык Си
Язык С буквально потряс компьютерный мир. Его влияние нельзя недооценивать, поскольку он полностью изменил подход к программированию. Создание языка С было прямым следствием потребности в структурированном, эффективном и высокоуровневом языке, который мог бы заменить код ассемблера в процессе создания системных программ.
А началось всё с появлением языка B, созданного в 1969 году коллективом исследователей из Технологического института Массачусетса (MIT). Кен Томпсон является главным автором B. В то время команда разрабатывала операционную систему UNIX. Язык PL/I, уже существовавший и применявшийся тогда для мэйнфреймов, изготовленных компанией IBM, меньше подходил для решения поставленной задачи, кроме того был достаточно громоздким. Исходя из этого, ученые решили поработать над созданием нового языка, получившего название B. Это типичный представитель ранних императивных языков программирования.
Как это ни странно, последователем B стал изобретенный в 1972 году язык программирования C. В его основу положен сам B [2].
Язык C создали Денис Ритчи и Кен Томпсон, работники исследовательской лаборатории компании под названием AT&T (AT&T Bell Telephone Laboratories). Над созданием расширенной версии B Ритчи начал свою работу в 1971 году. Сначала разработчик назвал её NB (New B), но после того как язык получил большие отличия от B, название заменили на C. B получил расширение за счет явного применения структур, типов и ряда новых операций.
Питер Мойлан писал в своей книге «The case against C» по поводу создания языка Си о том, что люди нуждались в языке, способном обойти некоторые строгие правила, встроенные в большую часть языков высокого уровня и поддерживающих их надежность. Требовался язык, позволяющий делать то, что реализовать до него можно было лишь на уровне машинного кода или на ассемблере.
До появления языка С программистам, как правило, приходилось выбирать между языками, которые позволяли оптимизировать тот или иной набор характеристик. Например, хотя FORTRAN можно было использовать при написании достаточно эффективных программ для научных приложений, он не очень подходил для создания системного кода. Аналогично, в то время как язык BASIC был очень прост в изучении, он предоставлял не очень много функциональных возможностей, а его недостаточная структурированность ставила под сомнение его полезность при создании крупных программ. Язык ассемблера можно использовать для создания очень эффективных программ, но его трудно изучать и эффективно использовать. Более того, отладка ассемблерного кода может оказаться весьма сложной задачей [1].
Еще одной сыгравшей свою роль проблемой было то, что ранние языки программирования, такие как BASIC, COBOL и FORTRAN, были спроектированы без учета принципов структурирования. Вместо этого в них основными средствами управления программой были операторы безусловного перехода GOTO. В результате программы, созданные с применением этих языков, тяготели к созданию так называемого “макаронного кода” — множества запутанных переходов и условных ветвей, которые делали программу буквально недоступной для понимания. Хотя такие языки как Pascal и структурированы, они не были предназначены для создания максимально эффективных программ и были лишены рада важных функций, необходимых для применения этих языков к написанию широкого круга программ. (В частности, учитывая существование нескольких стандартных диалектов Pascal, было нецелесообразно применять этот язык для создания кода системного уровня.)
Таким образом, непосредственно накануне изобретения языка С, несмотря на затраченные усилия, ни одному языку не удалось решить существующие конфликты. Вместе с тем потребность в таком языке становилась все более насущной. В начале 70-х гг. началась компьютерная революция, и потребность в программном обеспечении быстро превысила возможности программистов по его созданию. В академических кругах большие усилия были приложены к созданию более совершенного языка программирования. Однако, и это наиболее важно, все больше стало ощущаться влияние еще одного фактора. Компьютеры, наконец, получили достаточно широкое распространение, чтобы была достигнута “критическая масса”. Компьютеры больше не находились за запертыми дверями. Впервые программисты получили буквально неограниченный доступ к своим компьютерам. Это дало свободу экспериментам. Программисты смогли также приступить к созданию своих собственных программных средств. Накануне создания языка С произошел качественный скачок в области компьютерных языков [4].
Изобретенный и впервые реализованный Деннисом Ритчи на компьютере DEC PDP-11, работающем под управлением операционной системы UNIX, язык С явился результатом процесса разработки, начавшегося с предшествующего языка
Язык С был формально стандартизован в декабре 1989 г., когда Национальный институт стандартизации США (American National Standards Institute — ANSI) принял стандарт С.
Многие считают создание языка С началом современного этапа развития компьютерных языков. Он успешно объединил конфликтующие компоненты, которые доставляли столько неприятностей в предшествующих языках. Результатом явился мощный, эффективный, структурированный язык, изучение которого было сравнительно простым. Кроме того, ему была присуща еще одна, почти непостижимая особенность: он был языком программиста. До появления С языки программирования проектировались, в основном, либо в качестве академических упражнений, либо бюрократическими организациями. Язык С — иное дело. Он был спроектирован, реализован и разработан действительно работающими программистами и отражал их подход к программированию. Его функции были отлажены, проверены и многократно переработаны людьми, которые действительно использовали этот язык. В результате появился язык, который нравилось использовать программистам. Действительно С быстро приобрел много приверженцев, которые почти молились на него. Поэтому язык С получил быстрое и широкое признание в программистском сообществе. Короче говоря, С — это язык, разработанный программистами и для программистов. Как вы вскоре убедитесь, язык Java унаследовал эту особенность.
1.2 Язык Си++
В конце 70-х-начале 80-х гг. язык С стал превалирующим компьютерным языком программирования, и он продолжает широко применяться и в настоящее время. Поскольку С — удачный и удобный язык, может возникнуть вопрос, чем обусловлена потребность в чем-либо еще. Ответ: растущей сложностью. На протяжении всей истории развития программирования всевозрастающая сложность программ порождала потребность в более совершенных способах преодоления этой сложности. Язык C++ явился ответом на эту потребность. Чтобы лучше понять, почему потребность преодоления сложности программ является главной побудительной причиной создания языка C++, рассмотрим следующие факторы [3].
С момента изобретения компьютеров подходы к программированию коренным образом изменились. Например, когда компьютеры только появились, программирование осуществлялось изменением двоичных машинных инструкций вручную с панели управления компьютера. До тех пор, пока длина программ не превышала нескольких сотен инструкций, этот подход был вполне приемлем. С увеличением программ был изобретен язык ассемблера, который позволил программисту работать с большими, все более сложными программами, используя при этом символьные представления машинных инструкций. По мере того, как программы продолжали увеличиваться в объеме, появились языки высокого уровня, которые предоставили программисту дополнительные средства преодоления сложности программ.
Использование структурированных языков впервые предоставило программистам возможность достаточно легко создавать программы средней сложности. Однако даже при использовании методов структурного программирования по достижении проектом определенного размера его сложность начинала превышать ту, с которой программист мог справиться. К началу 80-х гг. сложность многих проектов начала превышать ту, с которой можно было справиться с использованием структурного подхода. Для решения этой проблемы был изобретен новый способ программирования, получивший название объектно-ориентированного программирования (ООП).
Объектно-ориентированное программирование подробно рассматривается в последующих главах этой книги, но мы все же приведем краткое определение: ООП — это методология программирования, которая помогает организовывать сложные программы за счет использования наследования, инкапсуляции и полиморфизма [6].
Хотя С — один из основных мировых языков программирования, существует предел его способности справляться со сложностью программ. Как только размеры программы превышают определенное значение, она становится слишком сложной, чтобы ее можно было охватить как единое целое. Хотя точное значение этого предела зависит как от структуры самой программы, так и от подходов, используемых программистом, начиная с определенного момента любая программа становится слишком сложной для понимания и внесения изменений. Язык C++ предоставил возможности, которые позволили программисту преодолевать этот барьер, чтобы контролировать большие по размеру программы и управлять ими.
Язык C++ был изобретен Бьярне Страуструпом в 1979 г. во время его работы в компании Bell Laboratories в городе Мюррей-Хилл, шт. Нью-Джерси. Вначале Страуструп назвал новый язык “С with Classes” (“С с классами”). Однако в 1983 г. это название было изменено на C++. Язык C++ расширяет функциональные возможности языка С, добавляя в него объектно-ориентированные свойства. Поскольку язык C++ построен на основе С, он поддерживает все его возможности, атрибуты и преимущества. Это обстоятельство явилось главной причиной успешного распространения C++ в качестве языка программирования. Изобретение языка C++ не было попыткой создания совершенно нового языка программирования. Напротив, все усилия были направлены на усовершенствование уже существующего очень удачного языка.
Бьярне Страуструп (Bell Labs) в 1984 году выступил с демонстрацией проекта языка С++. В период занятий исследованиями в фирме, Страуструп написал несколько имитационных программ, которые требовались для моделирования распределенных вычислений. Для решения подобных задач идеальным инструментом мог бы стать объектно-ориентированный язык программирования SIMULA-67, если бы он не характеризовался сравнительно низкой скоростью выполнения программ [5].
Если вы вынуждены делать выбор между написанием «быстрого» и «хорошего» кода, - это означает, что что-то идёт не так. Поскольку, согласно позиции Страуструпа, «хороший» код обязательно является «быстрым».
Так был создан С++, - язык программирования, которому первоначально дали название С with classes («Си с классами»). А придумал название «С++» Рик Мэсчитти. "++" является оператором инкремента в С, словно намекающий на то обстоятельство, что язык С++, что-то большее, чем просто С.
К концу 80-х-началу 90-х гг. объектно-ориентированное программирование с применением языка C++ стало основным методом программирования. Действительно, в течение некоторого непродолжительного времени казалось, что программисты, наконец, изобрели идеальный язык. Поскольку язык C++ сочетал в себе высокую эффективность и стилистические элементы языка С с объектно- ориентированным подходом, этот язык можно было использовать для создания самого широкого круга программ. Однако, как и в прошлом, уже вызревали факторы, которые должны были, в который раз, стимулировать развитие компьютерных языков [3]. Пройдет еще несколько лет, и World Wide Web и Интернет достигнут критической массы. Это приведет к еще одной революции в программировании.