Файл: История возникновения и развития языка программирования Си (С++) и Java (языка программирования Си (С++) и Java).pdf
Добавлен: 28.03.2023
Просмотров: 259
Скачиваний: 2
СОДЕРЖАНИЕ
1. История и развитие языка С++
1.1. История возникновения языка
1.2. Развитие и стандартизация языка С++
1.3. Необъектно-ориентированные особенности
1.4. Объектно-ориентированные особенности в С++
2. История и развития языка Java
2.2. Развитие и стандарты языка
Стандарты Java не особо отличаются от синтаксиса других си-подобных языков, но есть свои некоторые особенности такие как, чувствительность к регистру, для именования методов используется lowerCamelCase, для именования классов используется UpperCamelCase.
Особенность Java заключается в том, что Java код переводиться в байт код и выполняется на определенной виртуальной машине JVM (Java virtual machine). JVM – это программа, позволяет запускать Java код на любых устройствах или операционных системах . Что позволяет запускать программы не зависимо от платформы, будь то Windows или Linux или мобильное устройство. И дает достаточный прирост к оптимизации приложения и управлению памятью.
2.3 Объектно-ориентированные особенности языка
По прицепам ООП язык Java практически не чем не отличается от других объектно-ориентированных языков. Единственное что к этому языку хорошо подходит принцип абстракция. Абстракция означает использование простых вещей для описания чего-то сложного. Например, мы все знаем как пользоваться телевизором, но в тоже время нам не нужно обладать знаниями о том, как он работает чтобы смотреть его. В Java под абстракцией подразумеваются такие вещи, как объекты, классы и переменные, которые в свою очередь лежат в основе более сложного кода. Использование данного принципа позволяет избежать сложности при разработке ПО. Основная цель использования данной концепции — это уменьшение сложности компонентов программы за счет скрытия от программиста, использующего эти компоненты, ненужных ему подробностей. Это позволяет реализовать более сложную логику поверх предоставленной абстракции, не вдаваясь в подробности ее реализации. Приготовление кофе с помощью кофемашины является хорошим примером абстракции. Все, что нам надо знать, что бы ей пользоваться: как налить воды, засыпать кофейные зерна, включить и выбрать вид кофе, который хотим получить. А, как машина будет варить кофе — нам знать не нужно.
В данном примере кофемашина представляет собой абстракцию, которая от нас скрывает все подробности варки кофе. Нам лишь остается просто взаимодействовать с простым интерфейсом, который не требует от нас каких-либо знаний о внутренней реализации машины.
Этот же подход можно использовать и в объектно-ориентированных языках программирования, таких как Java. Многие опытные компании рекомендуют использовать подход DRY (Don't Repeat Yourself). Это один из основополагающих принципов разработки программного обеспечения в Java. Суть этого правила заключается в том, чтобы избегать появления одинакового кода в различных частях программы. Это достигается за счет вынесения дублирующихся строк кода в методы. Single Responsibility (принцип единственной ответственности). Еще один важный принцип, пренебрегать которым не стоит. Суть его в том, что каждый класс должен иметь только одно назначение. Ответственность класса должна лежать исключительно в области его функциональности. Если вы планируете в перспективе вносить изменения в программу, то инкапсулируйте по максимуму код, сделав приватными все его поля и методы. По мере того, как ваше приложение будет изменяться, расширяйте по мере необходимости доступ до protected, но не злоупотребляйте с public. Open Closed Design (принцип открытости/закрытости). Делайте все методы и классы закрытыми для модификации, но открытыми для расширения.
2.4 Достоинства и недостатки
Java – универсальный объектно-ориентированный язык со строгой типизацией. В нём реализован принцип WORA (от английского: write once, run anywhere). Это позволяет запускать приложения везде, где есть среда исполнения JRE (от английского: Java Runtime Environment). Механизм работы программ следующий. Исходный материал транслируется в байт-код, который обрабатывается виртуальной машиной Java (JVM). При этом не имеет значения, какая операционная система установлена на устройстве. Что дает огромное преимущество над большем количеством языков. Из достатков стоит отметить:
- Простота – первое техническое достоинство Java. У него чёткие синтаксические правила и понятная семантика. Рациональность и краткость очень полезны для обработки кода машинами с ограниченным объёмом ресурсов. Для встроенных устройств создана специальная платформа Java Micro Edition.
- Объектно-ориентированный подход. За 3 десятилетия он доказал свою эффективность. Суть состоит в том, что в центре внимания находятся данные (объекты), интерфейсы и алгоритмы вторичны. Другими словами, мы отталкиваемся от результата при выборе инструментов, способов их применения.
- Безопасность. Важнейший критерий, учитывая применение языка в сетевых / распределенных средах. Разработчики проделали большую работу по защите платформы Java. И она продолжается. Обойти или взломать механизмы защиты крайне сложно. Пример: использование классов, имеющих цифровую подпись. Полные права предоставляются только при полном доверии автору класса.
- Производительность. Изначально она вызывала вопросы. Новые версии динамических компиляторов Java не уступают традиционным из других платформ. Мощный прирост скорости обработки даёт оптимизация тех фрагментов кода, которая исполняется чаще. При необходимости те или иные приёмы оптимизации включаются или отменяются JIT-компилятором.
- Надёжность – одно из важнейших преимуществ. Программы на Java стабильно работают в любых условиях. Компилятор способен выявить ошибки ещё до выполнения кода, то есть на ранних стадиях. Контроль выполнения позволяет предотвратить сбои в памяти (например, из-за неточного указателя). Сами указатели можно применять не везде, а только там, где это необходимо (скажем, в работе со связными списками).
- Независимость от аппаратной части и ОС. Важно лишь наличие исполняющей среды и JVM. А компьютерная архитектура в целом значения не имеет. Байт-код легко интерпретируется на любой машине. Подход доказал свою состоятельность во многом благодаря динамической компиляции. Кроссплатформенностью отличается также интерфейс, реализованный в системных библиотеках.
- Динамичность и адаптируемость. Эта особенность позволяет Java не теряться в постоянно изменяющейся среде. При необходимости можно добавить в библиотеки новые объекты, методы. При этом трогать приложения, использующие данные библиотеки не нужно. Отследить информацию о структуре объектов, их поведении, о ходе выполнения программы очень легко.
- Удобные и эффективные сетевые возможности. Приложения умеют находить нужные объекты в сети и открывать к ним доступ. Причём так же легко, как будто мы имеем дело с локальной файловой системой. Имеется обширная программная библиотека для передачи данных по самым распространённым протоколам: FTP, HTTP, TCP/IP. Работает механизм вызова удалённых методов.