Файл: История возникновения и развития языка программирования Си (С++) и Java (Пример использования).pdf
Добавлен: 02.04.2023
Просмотров: 296
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. История и характеристика Java
1.1. Понятие и история создания языка программирования Java
1.2. Особенности и преимущества языка программирования Java
Глава 2. История и развитие языка программирования C++
2.1.История и краткая характеристика языка программирования C++
2.2.Структура данных и синтаксис языка программирования C++
Глава 3. Пример использования языков программирования Java и C++
Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Однако, такая универсальность данной технологии рождает недостаток – требовательность к ресурсам компьютера. Так как Java-программы не содержат машинного кода и при их запуске включается в работу система времени выполнения Java, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++[12].
Данный недостаток становится с течением времени все менее ощутим, в следствии роста вычислительной мощности компьютерных систем. Однако, если сравнивать 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++ дают возможность построения обобщённых контейнеров и алгоритмов для разных типов данных. Попутно шаблоны дают возможность производить вычисления на этапе компиляции. Возможность встраивания предметно-ориентированных языков программирования в основной код.
Доступность. Для С++ существует огромное количество учебной литературы, переведённой на всевозможные языки. Язык имеет высокий порог вхождения, но среди всех языков такого рода обладает наиболее широкими возможностями.
Недостатки языка С++[20]:
− Плохо продуманный синтаксис сужает спектр применимости языка (что, с учётом претензий на «универсальность», делает его крайне неудобным в некоторых задачах).
− Унаследованные от Си низкоуровневые свойства существенно тормозят и затрудняют прикладную разработку.
− Язык не содержит многих важных возможностей.
− Язык содержит опасные возможности, существенно снижающие качество программ сразу по всем показателям.
− Производительность труда программистов на языке оказывается неоправданно низка, а продукт труда – низкокачественным.
В книге «Дизайн и эволюция C++» Бьёрн Страуструп описывает принципы, которых он придерживался при проектировании C++ (приводятся в сокращении):
- Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
- Непосредственно и всесторонне поддерживать множество стилей программирования.
- Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
- Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.
- Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
- Избегать особенностей, которые зависят от платформы или не являются универсальными.
- «Не платить за то, что не используется» — никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
- Не требовать слишком усложнённой среды программирования.
C – это очень мощный язык программирования. Благодаря своей силе, C просто идеален, когда вам нужно получить полный контроль над создаваемой программой. Именно поэтому, большинство современных популярных операционных систем, таких как Windows, OSX и Linux, написаны именно на языке C. Почти все компьютеризированные устройства, полностью или частично, используют в своей работе язык C. От микроволновок, пультов дистанционного управления и калькуляторов до баз данных и управляющих механизмов Шаттлов — язык C настолько универсален, что используется почти повсеместно[21].