Файл: История возникновения и развития языка программирования Си (С++) и Java...pdf
Добавлен: 29.02.2024
Просмотров: 21
Скачиваний: 0
Содержание:
ВВЕДЕНИЕ
Актуальность темы курсовой работы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов - языков программирования.
На современном этапе развития компьютерных технологий невозможно представить какого-либо высококвалифицированного специалиста, не владеющего информационными технологиями. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать.
Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования.
Язык программирования - это система обозначений, служащая для точного описания программ или алгоритмов для ЭВМ. Языки программирования являются искусственными языками. От естественных языков они отличаются ограниченным числом “слов” и очень строгими правилами записи команд (операторов). Поэтому при применении их по назначению они не допускают свободного толкования выражений, характерного для естественного языка.
Можно сформулировать ряд требований к языкам программирования и классифицировать языки по их особенностям.
Основные требования, предъявляемые к языкам программирования:
- наглядность - использование в языке по возможности уже существующих символов, хорошо известных и понятных как программистам, так и пользователям ЭВМ;
- единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма (количество этих символов должно быть по возможности минимальным);
- гибкость - возможность относительно удобного, несложного описания распространенных приемов математических вычислений с помощью имеющегося в языке ограниченного набора изобразительных средств;
- модульность - возможность описания сложных алгоритмов в виде совокупности простых модулей, которые могут быть составлены отдельно и использованы в различных сложных алгоритмах;
- однозначность - недвусмысленность записи любого алгоритма (отсутствие ее могло бы привести к неправильным ответам при решении задач).
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
Если задаться вопросом, с каким языком связано начало современной эпохи программирования, ответ будет прост – с языком С. Данный язык разработал Д.Ритч в 70-х годах прошлого столетия для компьютера PDP 11 компании DEC (Digital Equipment Corporation), где применялась ОС UNIX.
В то время именно язык С, несмотря на присутствие развитых определенных языков программирования, определил направление всего будущего программирования.
Язык С++ разработали в 80-е годы в Bell Laboratories. По своей сути, С++ - это расширение языка С, его главное преимущество от своего предшественника, и от языков более высшего уровня в том, что в С++ присутствует поддержка объектно-ориентированного программирования, перегруженных операций, а также наличие возможности разработать полномасштабные Windows-приложения.
Как известно, современные приложения должны быть, в первую очередь, безопасны, отличаться высокой производительностью, быть работоспособными в распределенной среде, нейтральными к архитектуре.
Данные факторы способствовали пересмотру взглядов на сам процесс создания и распределения приложений на множестве ЭВМ различной архитектуры.
Требования к переносимости создали необходимость отказаться от обычного принятого способа создания и доставки бинарных файлов, которые содержали машинные коды и, следовательно, были привязаны к определенной платформе. Тогда компания SunMicrosystems создает систему разработки Java, которая удовлетворяет всем вышеперечисленным требованиям.
Объектом исследования курсовой работы послужила история возникновения и развития языков программирования С и С++ и Java.
Предметом исследования являются языки программирования С и С++ и Java.
Цель данной работы – ознакомиться с историей возникновения и развития языков программирования С и С++ и Java.
Для осуществления поставленной цели необходимо решить ряд задач:
- история развития языков программирования С и С++;
- понятие языков программирования С и С++;
- изучение языков программирования С и С++;
- история развития языка программирования Java;
- понятие языка программирования Java;
- изучение языка программирования Java;
ГЛАВА 1 ПРОГРАММИРОВАНИЕ С И С++
История возникновения и развития языков программирования С и С++
Как известно, самыми распространенными языками программирования в мире являются С и С++. Это – основные языки, применяемые в разработке не только системного ПО, но и прикладного. Если специалист в области информационных технологий владеет данными языками, он будет всегда иметь работу с большим заработком. [10, с.185]
Рассмотрим особенности данного языка.
- Эффективность. Заключается в том, что программы, которые написаны на зыке С – небольшого размера с одновременно большой скоростью исполнения.
- Лаконичность. Означает то, что запись алгоритма выразительная и краткая.
- Компактность. Язык содержит небольшое количество встроенных средств и ключевых слов.
- Мощность. Мощность применения достигается при помощи за использования большого числа библиотек.
- Переносимость. Компиляторы созданы для всех ОС и аппаратных платформ, вследствие чего программу можно скомпилировать и запустить практически всюду. [12, с.179]
Конечно, язык С имеет и недостатки. Сюда можно отнести достаточно слабый контроль преобразования типов и незащищенность в процессе работе с адресами и динамической памятью, в результате чего в программе легко совершить ошибку, которую впоследствии сложно будет обнаружить. С другой стороны, эти недостатки и дали возможность создать исполняемый код, по эффективности приближающийся к программе на языке Ассемблера. В 1981 году появляется язык С++, который многие называют “С с классами“.
Автор языка – Бъярн Страуструп способствовал добавлению в привычный С методы объектного языка – классы, служащие для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом.
Благодаря данным средствам появилась возможность не только писать объектно-ориентированные программы, но и создавать библиотеки шаблонов, классов - т.е. расширить инструментарий пользователя и сферу применения самого языка. С/С++ объединяет в себе вышесказанные достоинства С и новые возможности С++, предоставляя возможность “изнутри“ изучить принципы программирования высокого уровня. [20, с.146]
Язык С++ содержит в себе средства и методы как высокоуровневого, так и низкоуровневого программирования. К первым относятся классы, структуры, механизмы наследования и позднего связывания, шаблоны. Ко вторым можно отнести механизм указателей, работу с битами символов, работу с механизмом прерываний. Благодаря этому С++ весьма привлекательный для целей решения обширного круга задач.
Язык С (по-русски произносится как «Си») был разработан сотрудником фирмы AT&T из подразделения Bell Labs Денисом Ритчи в 1972 г. во время совместной работы с Кеном Томпсоном над ОС UNIX. Прообразом С послужил язык Би (B), разработанный К. Томпсоном. Также большое влияние на С имел язык BCPL, автором которого был М. Ричардсоном.
Язык С разрабатывался в основном как инструмент для системного программирования. Благодаря прекрасному сочетанию лаконичности конструкций и богатства выразительных возможностей язык С сумел найти быстрое распространение и стать одним из самых популярных языков как прикладного, так и системного программирования. Компиляторы языка С работоспособны почти на всех типах современных ПК в операционных системах Windows, Mac OS, Linux, FreeBSD, Solaris и др. [6, с.107]
В отличие от многих языков программирования (Ада, Алгол-60 и т.д.), вступавшими в силу только после принятия соответствующих национальных и международных стандартов, язык С изначально создавался в целях применения его как рабочего инструмента, который не ставил своей задачей широкое распространение.
До 1989 года на язык С стандарта не существовало, и в роли формального описания авторы компиляторов (разработчики) применяли книгу Б. Кернигана и Д. Ритчи (первое издание), которая вышла в 1978 году в США (на русский язык она была переведена в 1985году). Роль этой книги как неформального стандарта для языка С осталась и по сей день. Не случайно во всей литературе и различной документации по компиляторам ссылка на эту работу обозначается специальным сокращением K&R. [1, с.144]
Первый официальный стандарт языка С приняли в 1989годув Американском национальном институте стандартов (American National Standards Institute — ANSI). Эту версию языка на практике обозначается С89. Также, данный стандарт приняла и Международная организация стандартов (International Standarts Organization — ISO). В 1995г. стандарт С89 был незначительно изменен.
Язык С++ (по-русски читается «Си-Плюс-Плюс»), как развитие С, появился в 1979году. Его разработчиком стал Бьярни Страуструп, в то время он начал работать в BellLabs. Разработка и усовершенствование языка С++ вызвал от его создателя значительных усилий в течении 80-х - 90-х годов. В итоге, в 1998г. был принят ANSI/ISO-стандарт для языка С++.
Если говорить общими словами, язык С++ - это объектно-ориентированная, усовершенствованная версия языка С. С++ построен на основе версии С89, которая содержала в себе все изменения 1995г., и теперь эту версию С89 называют С-подмножеством языка С++. [8, с.152]
Несмотря на то, что язык С++ задумывался как набор объектно-ориентированных расширений для языка С, впоследствии он смог развиться как самостоятельный язык программирования. Сегодня его новые средства почти в два раза увеличили объем исходного языка. Не нужно никаких доказательств, что С++ является одним из самых мощных компьютерных языков, разработанных до сих пор.
В 1999 году приняли второй ANSI/ISO - стандарт для языка С. Эта версия называется С99, включающая набор усовершенствований, а также некоторые новые средства. Одни из этих «новых» средств пришли из языка С++, а другие – представляют пользователю совершенно иные, новые возможности. Таким образом, отдельные элементы, привнесенные в С99, несовместимы с языком С++. Это значит, что с появлением версии С99 стандарт языка С больше не считается чистым подмножеством языка С++.
К счастью, причина многих «несовместимостей» связана со средствами специального назначения, которые можно легко преодолеть. В итоге, и этот вариант языка С дает возможность создавать программы, которые будут совместимы с языком С++. [2, с.143]
В последующие несколько лет велись работы с целью вырабатывания новых стандартов языков С и С++, завершившиеся в конце 2011года.
В октябре 2011 года появился новый стандарт языка С++. Его обозначение- C++11 или ISO/IEC 14882:2011. Полная его поддержка обещана в GCC 4.7.
А в декабре 2011г. принимают новый стандарт и для языка С. Эту версию условно называют С11 или ISO/IEC 9899:2011. Часть её возможностей уже сейчас поддерживается компилятором GCC.
Сегодня существует очень огромное количество С-подобных языков - языков, в основу которых лег язык С. Наиболее имеющие важность из них — это языки C++ Бьярни Страуструпа, Java фирмы Sun и С# (читается Си-Шарп) фирмы Microsoft.
1.2 Основные понятия языков С и С++
Алфавит языка представляет собой набор знаков (символов), который допустим в данном языке. Такое определение справедливо и для языка человека, и для языков программирования. [4, с.112]
В языке С++ алфавит можно условно разделить на группы знаков:
- прописные и строчные латинские буквы (A, B,..., Z, a, b,..., z);
- арабские цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
- специальные знаки: " , { } | [ ] ( ) + - / % \ ; '. : ? < = > _ ! & * # ~ ^
- пробельные символы - это символы пробела, табуляции, перехода на новую строку.
Идентификатор - это имя какого-либо объекта программы. Например, имена дают переменным, функциям, классам и т.д. Имя может состоять из латинских букв, цифр и символа _ (символ подчеркивания). Начинаться имя может с буквы или символа подчеркивания, но не с цифры.
Важно учитывать, что прописные и строчные латинские буквы, используемые в идентификаторах, считаются различными (это требование является общим для всех С-подобных языков: С, С++, С#, Java, Perl и многих других. В таких же языках, как Fortran, Pascal, Basic не делается различия в именах между прописными и строчными латинскими буквами). [17, с.239]