История возникновения и развития языка программирования Си (С++) и Java.

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Java
  • 31 31 страница
  • 20 + 20 источников
  • Добавлена 16.07.2020
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Оглавление

Введение 3
Глава 1. Эволюция программирования 5
1.1. Стихийное программирование 6
1.2. Структурное программирование 8
1.3. Объектно-ориентированное программирование 11
1.4. Компонентное программирование 13
Глава 2. История возникновения и развития языка программирования C 15
2.1. Возникновение и эволюция языка C 15
2.2. Структура и эффективность C 17
Глава 3. История возникновения и развития языка программирования Java 20
3.1. Возникновение и эволюция языка Java 20
3.2. Этапы развития языка Java и его применение 22
Заключение 32
Список использованной литературы 34

Фрагмент для ознакомления

Июль 1994 г. - Нотон ограничивает сферуиспользования проекта Liveoak, посердством смены ориентации Oak на Internet.16 сентября 1994 г. - Нотон и Пейн начинают разработку WebRunner – браузер, позжеполучивший название в HotJava.29 сентября 1994 г. –первый прототип HotJava демонстрируется исполнительным лицам Sun.11 октября 1994 г. - Нотон переходит в компанию Starwave.Осень 1994 г. - Ван Хофф создает компилятор Java на языке Java. (Ранее он был реализован Гослингом на языке С).23 мая 1995 г. - Sun официально представляет Java и HotJava на выставке SunWorld '95.В начале 1996 г. Sun Microsystems выпустила первую версию Java. Но пользователи быстро осознали, что текущая версия Java 1.0 не может использоваться для созданиякоммерческих приложений. Конечно, данную версию можно применить для реализации визуальных эффектов на веб-страницах, к примеру, написать аплет, который выводит на странице случайным образом«прыгающий» текст, но версия Java 1.0 была еще сырой. В ней даже не было предусмотрено средства вывода на печать. Можно сказать, чтоданная версия еще не была готова. В последующей версии, Java 1.1, были устранены наиболее серьезные недостатки, улучшены средства рефлексии, а такжевведена принципиально новая модель событий. Тем не менее, возможности языка все еще были ограниченными.В 1998 году выход в свет Java 1.2 стал главной новостью конференции JavaOne. В этой версии на смену слабым средствамреализации графического интерфейса и графических приложений пришел мощный инструментарий. Это был большой шаг вперед, к соответствию лозунгу«Write Once, Run Anywhere» («Однажды написано — везде выполняется»), который был выдвинут при создании предыдущих версий. В декабре 1998 года название новой версии было изменено на неудобное и длинное «Java 2 Standard Edition Software Development Kit Version 1.2» (Стандартная редакция набора инструментальных средств для разработки программного обеспечения на Java 2, версия 1.2).Помимо Standard Edition, также были предложены следующие два варианта: для портативных устройств Micro Edition («микроредакция»), к примеру, для мобильных телефонов, и Enterprise Edition - для разработки корпоративных и коммерческих приложений.Версии 1.3 и 1.4 набора инструментальных средств Standard Edition - результаты поэтапного усовершенствования первоначально выпущенной версии Java 2. Они имеют новые возможности, повышенную производительность и, естветственно, содержат много меньше ошибок. В ходе развития Java многие взгляды на аплеты и клиентские приложения были пересмотрены. В частности, оказалось, что на Java удобно разрабатывать высококачественные серверные приложения.В версии 5.0 язык Java подвергся наиболее серьезной модификации с момента выпуска версии 1.1. (Первоначально версия 5.0 имела номер 1.5, но на конференции JavaOne в 2004 г. была принята новая нумерация версий.) После многолетних исследований были добавлены обобщенные типы (которые приблизительно соответствуют шаблонам C++), хотя при этом не были выдвинуты требования модификации виртуальной машины. Ряд других языковых элементов, например, циклы в стиле for each, автоупаковка и метаданные, были явно навеяны языком С#.Версия 6 (без суффикса .0) была выпущена в конце 2006 г. И снова сам язык существенных измененийне претерпел, но были внесены усовершенствования, которые были связаны с производительностью, а также произведены расширения библиотек.По мере того как в центрах обработки данных все чаще стали применяться аппаратные средства широкого потребления вместо специализированных серверов, для компании Sun Microsystems наступили тяжелые времена, и в конечном итоге она была приобретена компанией Oracle в 2009 г. Разработка следующих версий Java на долгое время приостановилась. И лишь в 2011 году компания Oracle выпустила новую версию Java 7 с простыми усовершенствованиями. Было решено более серьезные изменения отложить до версии Java 8, выпуск которой произошел в 2014 г.В табл. 1 сведены данные об этапах развития языка и библиотек Java [7]. В 2018 году коренным образом изменилась парадигма разработки и выпуска релизов Java.Только в конце марта текущего года, вышел Java 10. Однако, в связи с тем, что компания Oracle изменила релизный цикл (каждые полгода новый релиз), к выходу уже готовится 11-я версия.Java 10: краткая сводка.Нововведения десятой версии: локальный вывод типов с помощью var, улучшения в процессах «сборки мусора» и возможность использовать Graal как основной JIT-компилятор.Локальный вывод типов с помощью var просили многие разработчики. Теперь можно не вводить типы два раза подряд: сперва для объявления переменной, а затем для конструктора, идущего следом.var list = new ArrayList(); // infers ArrayListvar stream = list.stream(); // infers StreamТаблица 1Этапы развития языка JavaВерсияГод выпускаНовые языковые средстваКоличество классов и интерфейсов1.01996Выпуск самого языка2111.11997Внутренние классы4771.21998Отсутствуют15241.32000Отсутствуют18401.42002Утверждения27235.02004Обобщенные классы, цикл в стиле for each, автоупаковка, аргументы переменной длины, метаданные, перечисления, статический импорт327962006Отсутствуют379372011Оператор switch со строковыми метками ветвей, ромбовидный оператор, двоичные литералы, усовершенствованная обработка исключений402482014Лямбда-выражения, библиотеки потоков и даты/времени, интерфейсы с методами по умолчанию424092017Литералы в коллекциях, оператор Элвиса, Class Optional, Streams, IO, Regrexp, обработка процессов ProcessHandleболее 4500Тем не менее решение ввести var закончилось неоднозначными отзывами участников сообщества. Кто-то поддерживал нововведение и утверждал, что дедупликация повышает читабельность кода. Но были и те, кто уверял, что сейчас ряд типов переменных (к примеру, connection) не будут очевидными. Несмотря на что, что IDE теперь могут показывать их по требованию, однако же в других средах будут возникать проблемы.В десятом релизе для улучшенной сборки мусора содержались сразу два изменения: JEP 304 и JEP 307. JEP 304 улучшил изоляцию кода от разных сборщиков мусора посредством нового интерфейса GC, что дало возможность быстрее интегрировать сторонние сборщики. JEP 307, в свою очередь, позволил «собирать мусор» в несколько потоков.Что можно сказать о новом JIT-компиляторе, то он направлен на рост производительности JVM. Предыдущая версия JVM была написана на C++, но в рамках проекта Metropolis значительную часть JVM перепишут на Java. Экспериментальный компилятор выступает первым шагом на пути к данной цели.Возможные нововведения в Java 11. В начале осени разработчики планируют представить Java 11. И о функциях, которые могут быть частью релиза, уже известно. В сети происходит бурное обсуждение вероятных изменений.Часть разработчиков недовольна тем, как быстро меняется язык. Но есть и те, кто отмечает, что Java наконец-то обзаводится функциями, которых ему не хватало, и которые уже давно были реализованы в других ЯП. Вот некоторые из них.Изменения в локальном выводе типов.Java 10 уже предоставил возможность использовать var для обозначения типа локальных переменных, перекладывая эту задачу на плечи компилятора. Однако Java 11 идет дальше и делает так, что var можно использовать при объявлении формальных параметров неявно типизированных лямбда-выражений.Добавление необработанных строковых литералов.Это еще одно дополнение, над которым сейчас ведется работа. В необработанной строке каждый символ читается «как есть», включая символы разрыва. Например, такой строкой может быть разметка HTML или SQL-запрос:String html = "\n" +" \n" + "

Hello World.

\n" +" \n" + "\n";Используя строковый литерал, этот код можно записать следующим образом:String html = `

Hello World.

`;Для обозначения необработанной строки используется обратный апостроф (`). Если вам нужно прописать апостроф внутри самой строки, то в этом случае для маркировки её границ используются двойные (или тройные, четверные и т. д.) обратные апострофы:String str = ```This is a raw `string` with ``backticks`` inside```;Появятся switch-выраженияСейчас оформление switch выполняется следующим образом:int val;switch (str) { case "foo": val = 1; break; case "bar": val = 2; break; case "baz": val = 3; break;default: val = -1;}С появлением switch-выражений, конструкция сократится:int val = switch (str) { case "foo": break 1; case "bar": break 2; case "baz": break 3;default: break -1;}При этом если в case встречается только break, возможно использовать упрощенную нотацию:int val = switch (str) { case "foo" -> 1; case "bar" -> 2; case "baz" -> 3; default -> -1;}Добавление switch expressions — это шаг вперед на пути к появлению метода сопоставления с образцом.Помимо отмеченных выше, Java может получить и другие изменения. Например, поддержку типов значений или переменных типа в enum. Эти обновления не обязательно войдут в состав Java 11, но, вероятно, ожидать их можно уже в ближайшем будущем [13].ЗаключениеС++ был развит на базе языка программирования C и сохраняет C как подмножествоза очень немногими исключениями. Базовый язык, C подмножество С++, спроектирован таким образом, что сохраняется очень близкое соответствие между его типами, операторами и операциями, и компьютерными объектами, с которыми приходится иметь дело: символами, числами и адресами. Исключением выступают операции свободной памяти new и delete, отдельные операторы и выражения С++ как правило не нуждаются в скрытой поддержке во время выполнения или подпрограммах.В С++ применяются такие же последовательности возврата и вызова из функций, как и в C. В случаях, когда даже приведенный достаточно эффективный механизм становится слишком дорогим, С++ функция может быть подставлена inline, таким образом, удовлетворяя соглашению о записи функций без дополнительных расходов времени выполнения.Java создавался как универсальный язык, который предназначался для прикладного программирования в неоднородных компьютерных сетях и со стороны клиентского компьютера, и со стороны сервера. В том числе – для применения на тонких аппаратных клиентах (устройствах малой вычислительной мощности с крайне ограниченными ресурсами). При этом скомпилированные программы Java работают лишь под управлением виртуальной Java-машины, именно поэтому они называются приложениями Java. Синтаксис операторов Java почти полностью идентичен синтаксису языка C, но, Java не является расширением C, в отличие от C++, – это совершенно независимый язык, со своими собственными синтаксическими правилами. Идеология Java подразумевает работу в компьютерных сетях и возможность подгрузки в нужный момент посредством сети требуемых классов и ресурсов, необходимых программе, и тех, что не были загружены до того. Для обеспечения такой работы приложения Java разрабатываются и распространяются, как большое число независимых классов. Тем не менееданный способ разработки ведет к очень высокой фрагментации программы. Даже небольшие учебные проекты как правило состоят из десятков классов, в то время как реальные проекты – из сотен. В то же время каждому общедоступному (public) классу соответствует свой файл, носящий такое же имя. Для того чтобы справиться с даннымколичесвом файлов, Java предусматривает специальное средство группировки классов, которое называется пакетом (package). Пакеты обеспечивают независимые пространства имен (namespaces), а также ограничение доступа к классам.Список использованной литературыАлексеев Е.Р. Программирование на языке C++ / Е.Р. Алексеев, Г.Г. Злобин, Д.А. Костюк, О.В. Чеснокова, А.С. Чмыхало – М.: ALTLinux, 2015. – 448 с.Богуславский А.А. Основы программирования на языке Си++ / А.А. Богуславский, С.М. Соколов. – Коломна: КГПИ, 2012. – 490 с.Бондарев В.М. Учебное пособие по программированию на Java. - Харьков: СМИТ, 2013. - 296 с.Гаврилов А.В. Учебное пособие по языку Java. - Самара: Изд-во СГАУ, 2010. - 175 с.Голицына О.Л. Языки программирования. Учебное пособие. - М.: Форум, Инфра-М, 2008. - 125 с.Громов Ю.Ю. Технология программирования / Ю.Ю. Громов, О.Г. Иванова, М.П. Беляев, Ю.В. Минин – Тамбов: Изд-во ФГБОУ ВПО «ТГТУ», 2013. – 172 с.Дейтел П.Дж., Дейтел Х.М. Как программировать на С++. Введение в объектно-ориентированное проектирование с использованием UML. / Пер. с англ. - М.: Издательство Бином, 2009. - 1454 с. Дрейер М. C# для школьников. - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2009. - 128 с.Дубаков А.А. Введение в объектно-ориентированное программирование на Java. – СПб: Университет ИТМО, 2016. – 248 с.Иванова Г.С. Технология программирования. – Москва: Изд-во МГТУ им. Н.Э. Баумана, 2012. – 241 с.Каширина Н.В. Сопоставительный анализ подготовки специалистов по информационным технология в вузах России и за рубежом / Н.В. Каширина, М.М. Маран. – Москва: Изд-во журнала «Науковедение», 2015. – 20 с.Кузнецов B.В. Современное программирование на Java. - Томск, 2014. - 292 с.Макаров В.Л. Программирование и основы алгоритмизации. - СПб.: СЗТУ, 2003. - 110 с.Мирошниченко Е.А. Технологии программирования. – Томск: Изд-во ТПУ, 2013. – 124 с.Пышкин Е.В. Структурное проектирование: основание и развитие методов. С примерами на языке C++. – СПб.: Изд-во Политехнического ун-та, 2005. – 324 с.Радченко Г.И. Объектно-ориентированное программирование / Г.И. Радченко, Е.А. Захаров. - Челябинск: Издательский центр ЮУрГУ, 2013. - 167 с.Тюгашев А.А. Основы программирования. – СПб: Университет ИТМО, 2016. – 160 с.Хабибуллин И.Ш. Самоучитель Java 2. СПб.: БХВ-Петербург, 2007. - 720 с. Шилдт Герберт, Холмс Джеймс. Искусство программирования на Java. - СПб.: Питер, 2005. - 336 с.Шлее М. Профессиональное программирование на C++. – СПб.: БХВ-Петербург, 2012. – 912 с.

Список использованной литературы

1. Алексеев Е.Р. Программирование на языке C++ / Е.Р. Алексеев, Г.Г. Злобин, Д.А. Костюк, О.В. Чеснокова, А.С. Чмыхало – М.: ALT Linux, 2015. – 448 с.
2. Богуславский А.А. Основы программирования на языке Си++ / А.А. Богуславский, С.М. Соколов. – Коломна: КГПИ, 2012. – 490 с.
3. Бондарев В.М. Учебное пособие по программированию на Java. - Харьков: СМИТ, 2013. - 296 с.
4. Гаврилов А.В. Учебное пособие по языку Java. - Самара: Изд-во СГАУ, 2010. - 175 с.
5. Голицына О.Л. Языки программирования. Учебное пособие. - М.: Форум, Инфра-М, 2008. - 125 с.
6. Громов Ю.Ю. Технология программирования / Ю.Ю. Громов, О.Г. Иванова, М.П. Беляев, Ю.В. Минин – Тамбов: Изд-во ФГБОУ ВПО «ТГТУ», 2013. – 172 с.
7. Дейтел П.Дж., Дейтел Х.М. Как программировать на С++. Введение в объектно-ориентированное проектирование с использованием UML. / Пер. с англ. - М.: Издательство Бином, 2009. - 1454 с.
8. Дрейер М. C# для школьников. - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2009. - 128 с.
9. Дубаков А.А. Введение в объектно-ориентированное программирование на Java. – СПб: Университет ИТМО, 2016. – 248 с.
10. Иванова Г.С. Технология программирования. – Москва: Изд-во МГТУ им. Н.Э. Баумана, 2012. – 241 с.
11. Каширина Н.В. Сопоставительный анализ подготовки специалистов по информационным технология в вузах России и за рубежом / Н.В. Каширина, М.М. Маран. – Москва: Изд-во журнала «Науковедение», 2015. – 20 с.
12. Кузнецов B.В. Современное программирование на Java. - Томск, 2014. - 292 с.
13. Макаров В.Л. Программирование и основы алгоритмизации. - СПб.: СЗТУ, 2003. - 110 с.
14. Мирошниченко Е.А. Технологии программирования. – Томск: Изд-во ТПУ, 2013. – 124 с.
15. Пышкин Е.В. Структурное проектирование: основание и развитие методов. С примерами на языке C++. – СПб.: Изд-во Политехнического ун-та, 2005. – 324 с.
16. Радченко Г.И. Объектно-ориентированное программирование / Г.И. Радченко, Е.А. Захаров. - Челябинск: Издательский центр ЮУрГУ, 2013. - 167 с.
17. Тюгашев А.А. Основы программирования. – СПб: Университет ИТМО, 2016. – 160 с.
18. Хабибуллин И.Ш. Самоучитель Java 2. СПб.: БХВ-Петербург, 2007. - 720 с.
19. Шилдт Герберт, Холмс Джеймс. Искусство программирования на Java. - СПб.: Питер, 2005. - 336 с.
20. Шлее М. Профессиональное программирование на C++. – СПб.: БХВ-Петербург, 2012. – 912 с.

Вопрос-ответ:

Какова история возникновения и развития языка программирования Си?

Язык программирования Си был создан в начале 1970-х годов в лаборатории Bell Labs. Его основателями являются Деннис Ритчи и Кен Томпсон. Си был разработан как язык низкого уровня, предназначенный для написания операционных систем. Однако, благодаря своей простоте и эффективности, Си стал популярным языком программирования и нашел широкое применение в различных областях программирования.

Какова структура и эффективность языка программирования Си?

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

Какова история возникновения и развития языка программирования Java?

Язык программирования Java был разработан в 1990-х годах компанией Sun Microsystems. Его создателями были Джеймс Гослинг, Майк Шеридан и Патрик Нотон. Java был разработан в качестве языка программирования для устройств, подключенных к телевизорам, но впоследствии стал использоваться как универсальный язык программирования для создания приложений любого типа. Java относится к объектно-ориентированным языкам и предлагает широкий набор инструментов и библиотек для разработки распределенных систем и веб-приложений.

Что такое стихийное программирование?

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

Какая история возникновения и развития языка программирования Си?

Язык программирования Си был разработан в начале 1970-х годов в Bell Laboratories (Лаборатории Белла) Американского телефонного и телеграфного управления (AT&T) Деннисом Ритчи. Он создал Си в качестве преемника языка Би, чтобы разработать операционную систему Unix. Си был ориентирован на низкоуровневое программирование и отличался простотой и эффективностью. В последующие годы язык Си получил широкое применение и стал одним из самых популярных языков программирования в мире.

Каковы особенности структуры и эффективности языка программирования Си?

Язык программирования Си имеет простую структуру, основанную на последовательности команд, функций и блоков кода. Он позволяет разработчикам писать компактный и эффективный код. Си поддерживает низкоуровневое программирование, что позволяет разработчикам контролировать память и обращаться к аппаратному обеспечению непосредственно. Это делает его привлекательным языком программирования для системного программирования и разработки встроенного программного обеспечения.

Как возник и развивался язык программирования Java?

Язык программирования Java был разработан в 1990-х годах в компании Sun Microsystems (сейчас перешла под управление Oracle Corporation) Джеймсом Гослингом и его командой. Java была создана для использования в электронных устройствах и быстро стала популярной в веб-разработке благодаря своей платформенной независимости и возможности создания кросс-платформенных приложений. В последующие годы Java стала одним из самых распространенных языков программирования в мире и используется в различных областях, включая мобильную разработку и большие корпоративные системы.

Какова история возникновения и развития языка программирования C?

Язык программирования C был разработан в начале 1970-х годов в лаборатории Bell Labs. Основной целью создания C было разработать язык программирования с высокой производительностью и простым синтаксисом. C стал популярным благодаря своей способности создавать эффективные и компактные программы. Затем язык C продолжил развиваться и стал одним из самых популярных языков программирования во всем мире.

Какова история возникновения и развития языка программирования Java?

Язык программирования Java был разработан в 1990-х годах компанией Sun Microsystems. Он был создан с целью быть простым в использовании, безопасным и платформонезависимым. Java стал популярным благодаря своей способности создавать программы, которые могут работать на различных операционных системах без изменений. С течением времени Java стала одним из основных языков программирования для разработки приложений на сервере и на мобильных устройствах.