Файл: История возникновения и развития языка программирования Си (С++) и Java (Программирование Java).pdf
Добавлен: 31.03.2023
Просмотров: 254
Скачиваний: 2
Введение
Далекие предшественники языка программирования C появились еще в 60-х годах. Все началось с появления языка B, который в 1969 году был создан разработчиками из Технологического института Массачусетса (MIT). Главным автором языка программирования B является Кен Томпсон. Тогда команда работала над операционной системой UNIX. Уже существовавший язык PL/I был достаточно громоздким и меньше подходил для поставленной задачи. Поэтому ученые решили создать новый язык, который и получил название B. Он является типичным представителем ранних языков программирования.
После B последовал язык С, который был изобретен в 1972 году. Основой для нового языка послужил сам B. Создателями С были Кен Томпсон и Денис Ритчи, которые работали в исследовательской лаборатории компании AT&T (AT&T Bell Telephone Laboratories). В 1971 году Ритчи начал создавать расширенную версию B. Сначала он назвал её NB (New B), но когда язык стал сильно отличаться от B, название сменили на C. B расширился за счет явного использования типов, структур и ряда новых операций.
В 1984 году Бьярне Страуструп (Bell Labs) выступил с проектом языка С++. Когда Страуструп занимался исследованиями в фирме, ему потребовалось написать несколько имитационных программ для моделирования распределенных вычислений. SIMULA-67 — объектно-ориентированный язык – мог бы стать идеальным инструментом для решения подобных задач, если бы не его сравнительно низкая скорость выполнения программ.
По своей сути, С++ - это расширение языка С, его главное преимущество от своего предшественника, и от языков более высшего уровня в том, что в С++ присутствует поддержка объектно-ориентированного программирования, перегруженных операций, а также наличие возможности разработать полномасштабные windows-приложения.
Так был создан язык программирования С++, первоначально получивший название «Си с классами» (С with classes). Название «С++» придумал Рик Мэсчитти. "++" — это оператор инкремента в С, который как бы намекает на то, что язык С++, нечто больше, чем просто С.
Язык Java зародился как часть проекта создания передового программного обеспечения (ПО) для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возник ряд проблем, наилучшим средством борьбы с которыми было изменение самого инструмента - языка программирования. Начало разработке языка Java было положено в 1991 г. Джеймсом Гослингом, Патриком Нотоном, Крисом Вартом, Эдом Франком и Майком Шериданом, работавшими в компании Sun Microsystems, Inc. Разработка первой работающей версии заняла 18 месяцев. Вначале язык получил название “Oak” (“Дуб”), но в 1995 г. он был переименован в “Java”. Между первой реализацией языка Oak в конце 1992 г. и публичным объявлением о создании Java весной 1995 г. множество других людей приняли участие в проектировании и развитии этого языка. Билл Джой, Артур ван Хофф, Джонатан Пэйн, Франк Иеллин и Тим Линдхольм внесли основной вклад в развитие исходного прототипа. Разработчики начали работу над переносимым, не зависящим от платформы языком, который можно было бы использовать для создания кода, пригодного для выполнения на различных процессорах в различных средах. Вскоре эти усилия привели к созданию языка Java.
Цель данной работы – ознакомиться с историей возникновения и развития языков программирования С и С++ и Java.
В ходе поставленной цели будут решены следующие задачи:
- изучено программирование на С и С++: дано понятие языков программирования С и С++ их краткая история развития и базовые понятия;
- изучено программирование Java: дано понятие языка программирования Java, 16 история и базовые понятия.
Курсовая работа состоит из введения, двух глав, заключения и списка литературы.
Глава 1 . Программирование на С и С++
1.1 Краткая история развития языков С и С++
Язык С (по-русски произносится как «Си») был разработан сотрудником фирмы AT&T из подразделения Bell Labs Денисом Ритчи в 1972г. во время совместной работы с Кеном Томпсоном над ОС UNIX. Прообразом С послужил язык Би (B), разработанный К. Томпсоном. Также большое влияние на С имел язык BCPL, автором которого был М. Ричардсоном.
Язык С разрабатывался в основном как инструмент для системного программирования. Язык С сумел найти быстрое распространение и стать одним из самых популярных языков как прикладного, так и системного программирования благодаря прекрасному сочетанию лаконичности конструкций и богатства выразительных возможностей. Компиляторы языка С работоспособны почти на всех типах современных ПК в операционных системах Windows, Mac OS, Linux, FreeBSD, Solaris и др.
Язык С изначально создавался в целях применения его как рабочего инструмента, и не ставил своей задачей широкое распространение в отличие от многих языков программирования (Ада, Алгол-60 и т.д.), вступавшими в силу только после принятия соответствующих национальных и международных стандартов. До 1989 года на язык С стандарта не существовало, и в роли формального описания авторы компиляторов (разработчики) применяли первое издание книги Б. Кернигана и Д. Ритчи которая вышла в 1978 году в США ( на русский язык она была переведена в 1985 году). В роли неформального стандарта для языка С эта книга остается и по сей день. Не случайно во всей литературе и различной документации по компиляторам ссылка на эту работу обозначается специальным сокращением K&R.
Первый официальный стандарт языка С был принят в 1989 году в Американском национальном институте стандартов (American National Standards Institute — ANSI). Эту версию языка на практике обозначают - С89. Также, данный стандарт приняла и Международная организация стандартов (International Standarts Organization — ISO). В 1995г. стандарт С89 был незначительно изменен.
Язык С++ (по-русски читается «Си-Плюс-Плюс»)[1], как развитие С, появился в 1979году. Его разработчиком стал Бьярни Страуструп, в то время он начал работать в BellLabs. Разработка и усовершенствование языка С++ требовал от его создателя значительных усилий в течении 80-х - 90-х годов. В итоге, в 1998г. был принят ANSI/ISO-стандарт для языка С++. Если говорить общими словами, язык С++ - это усовершенствованная, объектно-ориентированная версия языка С. С++ построен на основе версии С89, которая содержала в себе все изменения 1995г., и теперь эту версию С89 называют С-подмножеством языка С++. Несмотря на то, что язык С++ задумывался как набор объектно-ориентированных расширений для языка С, впоследствии он смог развиться как самостоятельный язык программирования. Сегодня почти в два раза увеличен объем исходного языка.
В 1999 году приняли второй ANSI/ISO - стандарт для языка С. Эта версия называется С99, включающая набор усовершенствований, а также некоторые новые средства. Одни из этих «новых» средств пришли из языка С++, а другие – представляют пользователю совершенно иные, новые возможности. Таким образом, отдельные элементы, привнесенные в С99, несовместимы с языком С++. Это значит, что с появлением версии С99 стандарт языка С больше не считается чистым подмножеством языка С++. К счастью, причина многих «несовместимостей» связана со средствами специального назначения, которые можно легко преодолеть. В итоге, и этот вариант языка С дает возможность создавать программы, которые будут совместимы с языком С++.
В последующие несколько лет велись работы с целью вырабатывания новых стандартов языков С и С++, завершившиеся в конце 2011года.
В октябре 2011 года появился новый стандарт языка С++[2]. Его обозначение- C++11 или ISO/IEC 14882:2011. Полная его поддержка обещана в GCC 4.7.
А в декабре 2011г. принимается новый стандарт и для языка С. Эту версию условно называют С11 или ISO/IEC 9899:2011. Часть её возможностей уже сейчас поддерживается компилятором GCC.
Сегодня существует очень огромное количество С-подобных языков - языков, в основу которых лег язык С. Наиболее имеющие важность из них — это языки C++ Бьярни Страуструпа, Java фирмы Sun и С# (читается Си-Шарп) фирмы Microsoft.
1.2 Понятие языков программирования С и С++
Как известно, самыми распространенными языками программирования в мире являются С и С++. Это – основные языки, применяемые в разработке не только системного ПО, но и прикладного. Если специалист в области информационных технологий владеет данными языками, он будет всегда иметь работу с большим заработком.
Особенности данного языка:
-Эффективность. Заключается в том, что программы, которые написаны на зыке С – небольшого размера с одновременно большой скоростью исполнения.
-Лаконичность. Означает то, что запись алгоритма выразительная и краткая.
-Компактность. Язык содержит небольшое количество встроенных средств и ключевых слов.
-Мощность. Мощность применения достигается при помощи за использования большого числа библиотек.
-Переносимость. Компиляторы созданы для всех ОС и аппаратных платформ, вследствие чего программу можно скомпилировать и запустить практически всюду.
Язык С имеет и свои недостатки. Сюда можно отнести достаточно слабый контроль преобразования типов и незащищенность в процессе работе с адресами и динамической памятью, в результате чего в программе легко совершить ошибку, которую впоследствии сложно будет обнаружить. С другой стороны, эти недостатки и дали возможность создать исполняемый код, по эффективности приближающийся к программе на языке Ассемблера. В 1981 году появляется язык С++, который многие называют “С с классами“. Автор языка – Бъярн Страуструп[3] способствовал добавлению в привычный С методы объектного языка – классы, служащие для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом. Появилась возможность не только писать объектно-ориентированные программы, но и создавать библиотеки шаблонов, классов - т.е. расширить инструментарий пользователя и сферу применения самого языка. С/С++ объединяет в себе вышесказанные достоинства С и новые возможности С++, предоставляя возможность “изнутри“ изучить принципы программирования высокого уровня. Язык С++ содержит в себе средства и методы как высокоуровневого, так и низкоуровневого программирования. К первым, высокоуровневым, относятся классы, структуры, механизмы наследования и позднего связывания, шаблоны. Ко вторым, низкоуровневым, можно отнести механизм указателей, работу с битами символов, работу с механизмом прерываний. Благодаря этому С++ весьма привлекательный для целей решения обширного круга задач.
1.3 Базовые понятия языка
Алфавит языка представляет собой набор знаков (символов), который допустим в данном языке. Такое определение справедливо и для языка человека, и для языков программирования.
В языке С++ алфавит можно условно разделить на группы знаков[4]:
- прописные и строчные латинские буквы (A, B,..., Z, a, b,..., z);
- арабские цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
- специальные знаки: " , { } | [ ] ( ) + - / % \ ; '. : ? < = > _ ! & * # ~ ^
- пробельные символы — это символы пробела, табуляции, перехода на новую строку.
Идентификатор — это имя какого-либо объекта программы. Например, имена дают переменным, функциям, классам и т.д. Имя может состоять из латинских букв, цифр и символа _ (символ подчеркивания). Начинаться имя может с буквы или символа подчеркивания, но не с цифры. Важно учитывать, что прописные и строчные латинские буквы, используемые в идентификаторах, считаются различными (это требование является общим для всех С-подобных языков:С, С++, С#, Java, Perl и многих других. В таких же языках, как Fortran, Pascal, Basic не делается различия в именах между прописными и строчными латинскими буквами).
Пример допустимых идентификаторов:
Alfa Alfa ALFA x _x a25 i_tek
Обратите внимание: здесь alfa, Alfa и ALFA — разные имена.
Имена, подобные приведённым ниже, ни в коем случае нельзя использовать в качестве идентификаторов:
25a (начинается с цифры);
Альфа (кириллица не допустима).
Общепринятые рекомендации по использованию имён:
- желательно, чтобы имя объекта было осмысленным;
- в качестве имён констант используйте имена, состоящие из прописных латинских букв, например: PI, GAMMA;
- не используйте имена, начинающиеся с символа подчеркивания, так как такие имена часто используют разработчики компиляторов для своих целей;
- чем больше область видимости имени, тем более выразительным и длинным должно быть имя. Короткие однобуквенные или двухбуквенные имена допустимы только внутри небольших блоков программы, внутри коротких функций пользователя.
Длина имени в большинстве случаев не ограничена, но на длину внешних имён (имён библиотек, функций) может накладывать ограничение операционная система.
Ключевые (зарезервированные) слова — это слова, которые можно использовать в программе только по их прямому назначению, т.е. эти имена нельзя использовать для обозначения, например, своих переменных[5].