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

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

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

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

Добавлен: 16.05.2023

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

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

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

Релиз версии Java SE 8 состоялся 19 марта 2014 года. Кодовое имя Octopus. Список нововведений:

1) полноценная поддержка лямбда-выражений;

2) ключевое слово default в интерфейсах для поддержки функциональности по умолчанию;

3) ссылки на методы и конструкторы;

4) функциональные интерфейсы (предикаты, поставщики и т. д.);

5) потоки (stream) для работы с коллекциями;

6) новый API для работы с датами.

Официальная датой релиза версии Java SE 9 — 21 сентября 2017 года. Список нововведений:

1) интеграция Jigsaw;

2) обновление Process API для лучшего взаимодействия с нативными процессами операционной системы. Обновление мотивировано тем, что разработчикам зачастую приходилось писать платформозависимый (native) код для таких задач;

3) временно экспериментальный новый HTTP-клиент с поддержкой HTTP 2.0, веб-сокетов и заменой устаревшему HttpURLConnection;

4) сжатые строки: если содержимое строки позволяет, она может кодироваться в Latin-1 (один байт на символ); выбор кодировки конкретного экземпляра класса String отображается в значении переменной-флага, которая теперь есть у всех строк;

5) расширены аннотации депрекации: добавлен параметр, позволяющий указывать версию программы, с которой использование отмеченного элемента не одобряется, а также параметр, позволяющий указать, что запланировано удаление элемента в будущей версии.

Дата релиза версии Java SE 10: 20 марта 2018 года. Список нововведений:

1) официальный частичный список нововведений и план релиза расположен на сайте OpenJDK;

2) вывод типов локальных переменных с помощью var;

3) создание чистого интерфейса сборщика мусора;

4) использование сборщиком мусора нескольких потоков;

5) возможность выполнять функции обратного вызова на потоках, не делая глобальный для JVM safepoint;

6) новый экспериментальный JIT-компилятор Graal. По умолчанию отключён, работает только на Linux/x64;

7) новая система нумерации версий Java SE и JDK и др.

Java SE 11 вышла 25 сентября 2018 года. Список нововведений

1) обновление системы управления доступом, позволяющее вложенным классам обращаться к закрытым (private) методам и полям внешнего класса (и наоборот) без использования вставляемых компилятором методов-«мостов»;

2) Epsilon — новый сборщик мусора, собственно сборкой мусора не занимающийся вообще; при использовании Epsilon превышение предела выделяемой памяти приводит к завершении работы JVM;

3) стандартизирован новый клиент HTTP с поддержкой HTTP/2, введённый в Java 9 как экспериментальный;

4) синтаксис вывода типов (var) может быть использован для параметров лямбда-функций;


5) поддержка стандарта Unicode 10;

6) поддержка протокола TLS 1.3;

7) экспериментальный масштабируемый сборщик мусора ZGC. По умолчанию отключён, работает только на Linux/x64.

Итак, сегодня технология Java предоставляет средства для превращения статических Web-страниц в интерактивные динамические документы и для создания распределенных не зависящих от платформы приложений. Первоначально же язык Java корпорации Sun предназначался для устройств бытовой электроники, и в некоторых из них еще может использоваться его ранний вариант, известный под названием Oak. Однако настоящей стартовой площадкой для стремительного взлета Java стала сеть Internet. В настоящее время все работы, связанные со средой Java, ведет дочерняя фирма Java Soft. Ее информационный сервер расположен по адресу www.javasoft.com.

Достоинства языков Си, С++ и Java

Язык Си предоставляет исключительные возможности для переноса программ. Компиляторы с данного языка реализованы почти на 40 типах вычислительных систем, начиная от- 8-разрядных микропроцессоров и кончая CRAY-1 одним из самых мощных в настоящее время суперкомпьютеров.

Си — мощный и гибкий язык. Например, большая часть мощной и гибкой операционной системы (ОС) UNIX написана на языке Си. Речь идет о компиляторах и интерпретаторах других языков, таких, как Фортран, АПЛ, Паскаль, Лисп, Лого и Бейсик. Поэтому, когда используется компилятор с Фортрана в системе UNIX, результирующая объектная программа в конечном счете получается с помощью некоторой программы, написанной на языке Си. Кроме того, программы, написанные на Си, используются для решения физических и технических проблем и даже для производства мультипликационных фильмов.

Си обладает рядом замечательных конструкций управления, обычно ассоциируемых с ассемблером.

C++ — чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности: поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП, обобщённое программирование, метапрограммирование (шаблоны, макросы).

Предсказуемое выполнение программ является важным достоинством для построения систем реального времени. Весь код, неявно генерируемый компилятором для реализации языковых возможностей (например, при x нулевое значение, а потом интерпретирует его как значение условия в операторе if. Так как нуль соответствует логическому значению «ложь», блок операторов в условной конструкции не выполнится никогда. Ошибки такого рода трудно выявлять, но во многих современных компиляторах предлагается диагностика некоторых подобных конструкций.


Операции присваивания (=), инкрементации (++), декрементации (--) и другие возвращают значение. В сочетании с обилием операций это позволяет, хотя и не обязывает, создавать трудночитаемые выражения. Наличие этих операций в Си было вызвано желанием получить инструмент ручной оптимизации кода, но в настоящее время оптимизирующие компиляторы обычно генерируют оптимальный код и на традиционных выражениях. С другой стороны, один из основных принципов языков Си и C++ — позволять программисту писать в любом стиле, а не навязывать «хороший» стиль.

Макросы являются мощным, но опасным средством. Они сохранены в C++ несмотря на то, что необходимость в них, благодаря шаблонам и встроенным функциям, не так уж велика. В унаследованных стандартных Си-библиотеках много потенциально опасных макросов.

Некоторые преобразования типов неинтуитивны. В частности, операция над беззнаковым и знаковым числами выдаёт беззнаковый результат.

C++ позволяет пропускать break в ветви оператора switch с целью последовательного выполнения нескольких ветвей. Такой же подход принят в языке Java.

Преимущества Java как языка программирования:

1) объектно-ориентированный: в Java все является объектом. Дополнение может быть легко расширено, так как он основан на объектной модели;

2) платформонезависимый: в отличие от многих других языков, включая C и C++, Java, когда был создан, он не компилировался в платформе конкретной машины, а в независимом от платформы байт-коде. Этот байт код распространяется через интернет и интерпретируется в Java Virtual Machine (JVM), на которой он в настоящее время работает;

3) простой: процессы изучения и введение в язык программирования Java остаются простыми. Если Вы понимаете основные концепции объектно-ориентированного программирования, то он будет прост для Вас в освоении;

4) безопасным: методы проверки подлинности основаны на шифровании с открытым ключом;

5) архитектурно-нейтральным: компилятор генерирует архитектурно-нейтральные объекты формата файла, что делает скомпилированный код исполняемым на многих процессорах, с наличием системе Java Runtime;

6) портативный: архитектурно-нейтральный и не имеющий зависимости от реализации аспектов спецификаций — все это делает Java портативным. Компилятор в Java написан на ANSI C с чистой переносимостью, который является подмножеством POSIX;

7) прочный: выполняет усилия, чтобы устранить ошибки в различных ситуациях, делая упор в основном на время компиляции, проверку ошибок и проверку во время выполнения;


8) многопоточный: функции многопоточности, можно писать программы, которые могут выполнять множество задач одновременно. Введение в язык Java этой конструктивной особенности позволяет разработчикам создавать отлаженные интерактивные приложения;

9) интерпретированный: Java байт-код переводится на лету в машинные инструкции и нигде не сохраняется. Делая процесс более быстрым и аналитическим, поскольку связывание происходит как дополнительное с небольшим весом процесса;

10) высокопроизводительный: введение Just-In-Time компилятора, позволило получить высокую производительность;

11) распространенный: предназначен для распределенной среды интернета;

12) динамический: программирование на Java считается более динамичным, чем на C или C++, так как он предназначен для адаптации к меняющимся условиям. Программы могут выполнять обширное количество во время обработки информации, которая может быть использована для проверки и разрешения доступа к объектам на время выполнения.

Итак, языки Си (С++) и Java обладают достоинствами, позволяющими программистам всего мира ежедневно работать с указанными языками и развивать индустрию программного обеспечения.

Заключение

Си - компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.

C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Синтаксис C++ унаследован от языка Cи. Одним из принципов разработки было сохранение совместимости с Cи. Тем не менее, C++ не является в строгом смысле надмножеством Cи. В сравнении с его предшественником — языком Cи — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.