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

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

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

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

Добавлен: 30.06.2023

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

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

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

Виртуальная машина Java (Java Virtual Machine) это ключевой компонент платформы Java, представляющий собой виртуальную среду, виртуальный компьютер с характеристиками нопмального компьютера (реестром, кодами, набором информации), который руководит приложениями Java.

Виртуальная машина Java (Java Virtual Machine) интерпретирует и выполняет байт-код Java, преждевременно создан с исходного текста Java программы компилятором Java.

Одна из сильных сторон виртуальной машины Java, всегда была ее способность с легкостью жонглировать несколькими потоками. JVM оптимизирована для больших многоядерных машин, и она без проблем может управлять сотнями потоков. Благодаря этой способности, на JVM появились и другие языки – создаются кросс-компиляторы и эмуляторы, работающие поверх JVM.

JVM была построена и оптимизирована под типизированный код со статическим контекстом, генерируемый javac компилятором, но со временем разработчики языков поняли, что JVM может запускать код написанный не только на языке Java. Если компилятор создает корректный Java байт код, JVM не волнует на каком языке он был написан. Эти магические возможности используются многими веб-сайтами с высокой посещаемостью. Разработчики пишут код на своем ноутбуке, а затем разворачивают приложение на мощном сервере, где оно использует многоядерную мощь в полную силу. Достоинство подобного способа выполнения программ – в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина[11].

Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Однако, такая универсальность данной технологии рождает недостаток – требовательность к ресурсам компьютера. Так как Java-программы не содержат машинного кода и при их запуске включается в работу система времени выполнения Java, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++[12].

Данный недостаток становится с течением времени все менее ощутим, в следствии роста вычислительной мощности компьютерных систем. Однако, если сравнивать Java с интерпретируемыми языками, которые наиболее часто используются в веб-разработке, то производительность Java, как минимум, идентична, а часто заметно выше. Язык Java является объектно-ориентированным и поставляется с достаточно объемной библиотекой классов.


Библиотеки классов Java значительно упрощают разработку приложений, предоставляя в распоряжение программиста мощные средства решения распространенных задач. Поэтому программист может больше внимания уделить решению прикладных задач, а не таких, как, например, организация динамических массивов, взаимодействие с операционной системой или реализация элементов пользовательского интерфейса. Система Java создавалась объектно-ориентированной с самого начала. Объектно-ориентированная парадигма наиболее удобна при создании программного обеспечения типа клиент-сервер, а также для организации распределенных вычислений[13].

Одна из черт, присущих объектам, заключается в том, что объекты обычно переживают процедуру, их создающую. Они затем могут перемещаться по сети, храниться в базах данных и т. д.

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

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

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

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

Безопасным: методы проверки подлинности основаны на шифровании с открытым ключом.

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

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

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

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


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

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

Распространенный: предназначен для распределенной среды интернета.

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

Язык Java не был первым языком для написания кроссплатформенных приложений, но он стал самым популярным. Это не означает полную совместимость на разных платформах – отсутствующие библиотеки или несовместимые версии библиотек запросто похоронят ваш код. Вы не можете взять код десктоп приложения, скомпилированный под JRE 1.7 и запустить его на телефоне в Java ME. Чуда не произойдет. Если вы используете правильные версии Java и у вас достаточно памяти, ваш код будет работать.

По оценкам аналитиков TIOBE Software, самым востребованным в профессиональной среде инструментом для создания приложений в настоящий момент является Java – язык программирования, за прошедшие 12 мес прибавивший почти 6 % в общем рейтинге, занявший 21,5 % рынка и получивший почетный титул «язык 2015 года».

Вторым по популярности среди разработчиков является язык С (16 %), замыкает тройку лидеров C++, чья доля на рынке составляет примерно 7 %. На четвертой позиции фигурирует C# (4,7 %) (рис. 1). Компания TIOBE Software, Анализ данных проводится на основе результатов поисковой выдачи многих систем, включая Google, Google Blogs, Yahoo!, Wikipedia, MSN, YouTube, Bing, Amazon и Baidu (рис. 1). Как мы видим, язык Java занимает первые места во многих рейтингов, это говорит о том, что он очень востребован.

Рисунок 1. Визуализация инструмента программирования в графическом виде

Самой выдающейся чертой языка Java является то, что его приложения компилируются в специальный байт-код и выполняются в специальной виртуальной машине в любой операционной системе и на любом оборудовании. На этом языке программирования могут создаваться веб-приложения для london escort service, мобильные приложения или программы, «удобочитаемые» на любом компьютере. К уже реализованным всемирно известным проектам на Java относятся Amazon, eBay, Yandex.


Другим важным преимуществом языка является довольно высокая безопасность. Поскольку все приложения выполняются и, соответственно, контролируются Java-машиной, то при любой попытке несанкционированного доступа или соединения программа просто прерывает свою работу. Некоторые программисты выделяют и более упрощенную саму форму написания программ Java по сравнению с ее предшественниками, коими являются С, С+ и С++. Помимо этого, к языку существует огромное количество бесплатных программных библиотек, написанных программистами всего мира. К недостаткам языка следует отнести чрезмерную нагрузку на оперативную память оборудования. По некоторым данным и время выполнения одних и тех же задач в 1,5–2 раза у продуктов этого языка медленнее, чем на тех же С. Тем не менее, пока преимущества языка Java перевешивают его недостатки, он остается одним из самых востребованных.

Глава 2. История и развитие языка программирования C++

2.1.История и краткая характеристика языка программирования C++

Создание языка программирования Си положило начало новой эпохе программирования. Язык был разработан Деннисом Ритчи для создания операционной системы UNIX[14].

Си возник в результате начавшейся в 60-е годы революции в структурном программировании. В то время большие программы представляли собой тяжело отслеживаемый, длинный набор вызовов, возвратов, безусловных переходов, так называемый «макаронный код». Структурное программирование Си, сменив такие языки, как Алгол и Фортран, облегчило жизнь программиста. Сейчас программист — высокооплачиваемая профессия, на сайте поиска работы HeadHunter — hh.ua ежедневно публикуются сотни интересных предложений как для начинающих программистов для работы системным администратором, так и для профи — для разработки программного обеспечения[15].

В Кембриджском университете в начале 60-х годов задались целью написать язык, на котором можно было бы писать другие языки. Впоследствии к ним подсоединился Лондонский университет. Этот язык, восходящий корнями к Алголу, назвали CPL (Combine Programming Language). Язык Си явился логическим итогом этой работы и впитал многие конструкции CPL. Компилятор Си, в соответствии с традицией, заложенной Николаусом Виртом, написан на самом Си[16].


Язык C++ возник вследствие необходимости появления полноценного языка, который позволял бы решать не только математические задачи, но и задачи системного программирования. Ассемблер, на котором пишется низкоуровневая часть кода операционных систем, не только громоздок, но и слишком сильно привязан к определенному типу процессора. С этой точки зрения, язык C++ представляет собой универсальный, обобщенный Ассемблер. Вот почему именно Си установил образец, которому мы следуем до сих пор, хотя во многих языках, предшествующих Си, тоже был достигнут значительный прогресс[17].

Другая причина того, что в 1980-е годы язык C++ превратился в самый распространенный и популярный среди языков структурного программирования, – это его емкий, но простой синтаксис. Язык C++ – это удачное сочетание эффективности, выразительности и изящества.

Когда в конце 70-х годов масштабы проектов расширились до пределов, с которыми методики структурного программирования уже не справлялись, появилось новое направление в программировании — ООП, объектно-ориентированное программирование. Стремление создать объектно-ориентированный вариант самого распространенного языка программирования привело к появлению C++.

C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр)[18].

Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, наплатформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder идругие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#. C++ содержит средства разработки программ контролируемой эффективности для широкого спектра задач, от низкоуровневых утилит и драйверов до весьма сложных программных комплексов[19].

Перегрузка операторов позволяет кратко и ёмко записывать выражения над пользовательскими типами в естественной алгебраической форме. Имеется возможность управления константностью объектов (модификаторы const, mutable, volatile).

Шаблоны C++ дают возможность построения обобщённых контейнеров и алгоритмов для разных типов данных. Попутно шаблоны дают возможность производить вычисления на этапе компиляции. Возможность встраивания предметно-ориентированных языков программирования в основной код.