Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

Введение

В настоящее время информационные технологии занимают далеко не последнее место, их значение велико и растет с каждым днём. Постоянный прогресс в развитии компьютерных технологий определяет необходимость появления разных новых знаковых систем для записи алгоритмов, то есть языков программирования. В XXI веке такую профессию как программист можно назвать одной из самых важных профессий, и ее важность будет возрастать.

Сейчас существует довольно большое количество языков программирования. Если задаться вопросом, с каким языком связано начало современной эпохи программирования, ответ будет прост – с языком C. По своей сути, С++ – это расширение языка С. В отличие от своего предшественника у языка С++ много преимуществ.

Java – объектно-ориентированный язык, удобный и надёжный в эксплуатации благодаря таким своим достоинствам, как многозадачность, поддержка протоколов Internet и многоплатформенность.

Актуальность темы исследования состоит в следующем: прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.

Цель исследования: изучить историю возникновения и развития языков программирования С (C++) и Java.

Объект исследования: языки программирования С (C++) и Java.

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

Задачи исследования:

1.Изучить источники информации по теме;

2.Разобраться в общих понятиях программирования;

3.Рассмотреть в целом историю развития языков программирования;

4. Просмотреть подробно историю развития языков С (C++) и Java.

Методологическую основу данной работы составили труды следующих исследователей: Бьерн Страуструп, Герберт Шилдт, Кэти Сиерра, Берт Бейтс, Холмс Джеймс, Джесс Либерти и др.

В данной курсовой работе был применен научно-исследовательский метод.

Работа состоит из введения, двух глав, заключения, библиографии и приложения.

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

В первой главе рассматриваются общие сведения о языках программирования и история их развития. Более подробно описана история возникновения языка C++. Показаны особенности этого языка.

Во второй главе дается определение языку программирования Java. История возникновения. Рассмотрены различия между такими языками программирования, как Java и С++.

В заключении подводятся итоги о проделанной работе. Приложение включает в себя схемы, таблицы. Библиография содержит список литературы, используемый при написании работы.

Глава 1. Программирование на С и С++

Общее понятие программирования

Основоположником программирования можно считать английского математика Чарлза Бэббиджа (1791—1871 гг.). В 20-х годах XIX века ему пришла идея создать такую механическую машину для вычислений, что порядок ее действий можно было предварительно записывать и впоследствии выполнять эти действия на машине автоматически. Это была идея, положившая начало программированию.[1]

У истоков программирования также стояла Ада Лавлейс. Она разработала некоторые приемы управления последовательностью вычислений. Такие приемы используются в программировании и в настоящее время. Также была описана одна из важнейших конструкций практически любого современного языка программирования – цикл.[2]

Следующего прогресса в программировании пришлось ждать почти 100 лет, связан он был с появлением в середине 1940-х годов электромеханических и электронных вычислительных машин.

Программирование – это процесс создания кода на каком-либо языке программирования, переводимого в файлы разных типов с помощью особой программы – транслятора. Существуют два типа трансляторов: компиляторы и интерпретаторы.[3]

Компилятор – это программа, переводящая текст, написанный на языке программирования, в какой-либо файл.

Интерпретатор – это программа, способная переводить текст какой-либо программы в машинный код и одновременно выполнять её.[4]

А что же такое язык программирования, о котором мы будем говорить далее?

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

Первым шагом в развитии современных языков программирования стало создание в конце 1940-х годов Джоном Моучли системы кодирования машинных команд этих компьютеров с помощью специальных символов. Описываемая система, которую назвали «Short Code», была по существу одним из первых примитивных интерпретаторов. Она использовала примитивный язык программирования высокого уровня. На нем программист записывал решаемую задачу в виде математических формул, а затем сам, используя специальную таблицу, переводил символ за символом, преобразовывая эти формулы в двухлитерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код.[6]

В 1951 г. Г. Хоппер создала первый в мире компилятор. Именно она ввела сам этот термин. Под ее руководством была разработана система MATH-MATIC, включающая язык программирования и компилятор. Г. Хоппер и ее группа первыми придумали подпрограммы.

Стремительный прогресс в области программирования произошел в середине 50-х годов XX века. Программирование в машинных командах стало вытесняться программированием на языках, выступавших в роли посредника между машинами и программистами. Первым и одним из наиболее распространенных стал Фортран (FORTRAN, от FORmula TRANslator — переводчик формул), разработанный группой программистов фирмы IBM в 1954 г. Этот язык получил большое распространение, стал основным языком для научных и технических расчетов, несколько раз усовершенствовался и широко используется до сих пор.[7]

В конце 50-х годов популярным стал Алгол-60 (алгоритмический язык, версия 1960 г.). Алгол предназначен для записи алгоритмов, которые строятся в виде последовательности процедур, применяемых для решения поставленных задач. Развитие идеи Алгола нашло наивысшее отражение при создании в начале 1970-х годов языка Паскаль швейцарским ученым Никлаусом Виртом.[8]

В середине 1960-х годов сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых слов английского языка. Новый язык назвали «универсальным символическим кодом для начинающих» (Beginners All Purpose Symbolic Instruction Code, или, сокращенно, BASIC, а по-русски — Бейсик). Годом рождения нового языка можно считать 1964 г.[9]

Универсальный язык Бейсик имел долгое время большую популярность и широкое распространение среди пользователей ЭВМ различных категорий во всем мире.

Большой отпечаток на современное программирование наложил язык С (первая версия — 1972 г.), являющийся очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Язык С сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не позволяют такие языки, как Бейсик и Паскаль.

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

Бурный рост числа различных языков программирования в период с конца 1960-х и до начала 1980-х годов сопровождался, как это ни странно, кризисом программного обеспечения. Остро не хватало программ для решения самых разных задач и программистов для их разработки, а написанные программы часто содержали ошибки и работали неустойчиво.

Языки программирования сохраняют свое предназначение для решения задач определенных типов. Выбор языка определяется удобствами для программистов, их предпочтениями в силу опыта и образования, а также пригодностью для данного компьютера и данной задачи.

С помощью компьютера решаются разнообразные задачи: вычислительные, экономические, графические, экспертные, создание системного программного обеспечения и т.д. Такая разнотипность решаемых компьютером задач и приводит к многообразию языков программирования.

Наилучший результат в программировании достигается при индивидуальном выборе языка программирования на основе класса задачи, уровня и интересов программиста. Например, Бейсик широко употребляется при обучении и написании простейших программ; Фортран является классическим языком программирования при решении математических и инженерных задач; Кобол используется как основной язык для массовой обработки данных в сферах управления и бизнеса.

Несмотря на многообразие языков программирования, каждый из них можно отнести к одной из всего трех парадигм. Парадигмой в науковедении называется набор теорий, гипотез, взглядов и подходов, относящихся к одному течению, в основе которых лежит общий принцип. В программировании известны три парадигмы: процедурная, функциональная и логическая. Большинство языков программирования, доминирующих при создании системного и прикладного программного обеспечения, таких как Фортран, Бейсик, Паскаль, Ада, Си, Модула, Форт, относятся к процедурной парадигме.

Однако по мере эволюции языков программирования получили широкое распространение и другие, принципиально иные, подходы к созданию программ. Существует классификация языков программирования. Приведена общая классификация языков программирования в соответствии с парадигмами программирования (Приложение 1).

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

Языками высокого уровня называют языки программирования, универсальные по отношению к архитектуре компьютеров и использующие обозначения, близкие к принятым в математике и других видах деятельности человека. [10]

На таких языках удобно писать прикладные программы, решающие какие-то научные, технические, управленческие задачи. Программы на языках высокого уровня содержат служебные слова естественного (английского) языка, состоят из легко читаемых и понимаемых команд. Это отличает такие языки от языков низкого уровня (машинно-ориентированных).

Языки программирования высокого уровня имеют следующие достоинства:

  • алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
  • набор операций, допустимых для использования, не зависит от набора машинных команд, а выбирается из соображений удобства записи алгоритмов, решения задач определенного класса;
  • конструкции команд (операторов) отражают привычные человеку приемы обработки данных и задаются в удобном для чтения и понимания виде;
  • используется аппарат переменных и действия с ними;
  • поддерживается широкий набор типов данных.[11]

Каждый язык программирования имеет алфавит, словарный запас, свои грамматику и синтаксис, а также семантику.

Алфавит — фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.

Синтаксис — система правил, определяющих допустимые конструкции языка программирования из букв алфавита.

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

Понятие подразумевает некоторую синтаксическую конструкцию и определяемые ею свойства программных объектов или процесса обработки данных.[12]

Важным преимуществом языков высокого уровня является их универсальность, независимость от ЭВМ. Программа, написанная на таком языке, может выполняться на разных машинах. Составителю программы не нужно знать систему команд ЭВМ, на которой он предполагает проводить вычисления. При переходе на другую ЭВМ программа не требует переделки. Такие языки – не только средство общения человека с машиной, но и людей между собой. Программа, написанная на языке высокого уровня, легко может быть понята любым специалистом, который знает язык и характер задачи.

Таким образом, в настоящее время в мире существует несколько сотен реально используемых языков программирования. И для каждого языка есть своя область применения.

Возникновение и эволюция языка C++

Безусловно С++ многим обязан языку С, который сохраняется как его подмножество. Сохранены и все свойственные С средства низкого уровня, предназначенные для решения самых насущных задач системного программирования. Разработка С как языка, предназначенного для программистов, сде­лала его одним из наиболее востребованных в настоящее время. В течение последних четырех десятилетий С стал одним из основных и наиболее широко распространенных языков программирования.

Язык С возник в результате революции структурированного программирования 60-х годов. Появление структурированных языков позволило писать уже довольно большие программы. Несмотря на то, что в то время уже существовали другие структурированные языки (например, Pascal), С стал первым языком, в котором успешно сочетались мощь, изящество и выразительность. [13]

Деннис Ритчи из компании Bell Labs создал язык С в 1972 году, когда они вместе с Кеном Томпсоном работали над созданием операционной системы Unix. Наиболее важ­ным является тот факт, что С задумывался как инструментальное средство для программистов-практиков, следовательно, его главной целью в этом случае было создание полезного языка программирования.[14]

К 1973 году язык С стал достаточно силён, и большая часть ядра UNIX, первоначально написанная на ассемблере PDP-11/20, была переписана на С. Это было одно из самых первых ядер операционных систем, написанное на языке, отличном от ассемблера; более ранними были лишь системы Multics (написана на ПЛ/1) и TRIPOS (написана на BCPL).

В 1978 году Брайан Керниган и Деннис Ритчи опубликовали первую редакцию книги «Язык программирования С». Среди программистов эта книга была известна как «K&R». K&R ввёл следующие особенности языка:

  • структуры (тип данных struct);
  • длинное целое (тип данных longint);
  • целое без знака (тип данных unsignedint);
  • оператор += и подобные ему (старые операторы =+) вводили анализатор лексики компилятора Си в заблуждение, например, при сравнении выражений i =+ 10 и i = +10).

После публикации K&R C в язык было добавлено несколько возможностей, поддерживаемый компиляторами AT&T и некоторых других производителей:

    • функции, не возвращающие значение (с типом void) и указатели, не имеющие типа (с типом void *);
    • функции, возвращающие объединения и структуры;
    • имена полей данных структур в разных пространствах имён для каждой структуры;
    • присваивания структур;
    • спецификатор констант (const);
    • стандартная библиотека, реализующая большую часть функций, введённых различными производителями;
    • перечислимый тип (enum);
    • дробное число одинарной точности (float).

В конце 1970-х годов С начал вытеснять Бейсик с позиции ведущего языка для программирования микрокомпьютеров. В результате С был общепризнан как самый популярный структурированный язык 1980-х годов.

В то же время Бьёрн Страуструп и другие в лабораториях BellLabs начали работу по добавлению в С возможностей объектно-ориентированного программирования.

Язык С++ был создан Бьерном Страуструпом (Bjame Stroustrup) в 1979 году в компании ВеН Laboratories (г. Муррей-Хилл, шт. Нью-Джерси). Сначала новый язык получил имя «С с классами» (С with Classes), но в 1983 году он стал называться С++. Название было придумано Риком Маскитти.[15]

Выбор С в качестве базового языка для С++ объясняется следующими его достоинствами:

  • универсальность, краткость и относительно низкий уровень;
  • адекватность большинству задач системного программирования;
  • он идет в любой системе и на любой машине;
  • полностью подходит для программной среды UNIX.[16]

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

Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Когда в конце 1970-х годов Страуструп начал работать в BellLabs над задачами теории очередей (в приложении к моделированию телефонных вызовов), он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки большого программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки большого программного обеспечения.

Страуструп построил С++ на фундаменте языка С, включающем все его средства, атрибуты и основные достоинства. Для него также остается в силе принцип С, согласно которому программист, а не язык, несет ответственность за результаты работы своей программы. Именно этот момент позволяет понять, что изобретение С++ не было попыткой создать новый язык программирования. Это было скорее усовершенствование уже существующего (и при этом весьма успешного) языка. Большинство новшеств, которыми Страуструп обогатил язык С, было предназначено для поддержки объектно-ориентированного программирования. По сути С++ стал объектно-ориентированной версией языка С. Взяв язык С за основу, Страуструп подготовил плавный переход к ООП. Теперь, вместо того, чтобы изучать совершенно новый язык, С-программисту достаточно было освоить только ряд новых средств.[17]

Итак, при создании C++ Бьёрн Страуструп хотел:

  • Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
  • Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
  • Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
  • Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.
  • Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
  • Избегать особенностей, которые зависят от платформы или не являются универсальными.
  • «Не платить за то, что не используется» – никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
  • Не требовать слишком усложнённой среды программирования.[18]

В настоящее время язык программирования С имеет несколько разновидностей, а именно:

  • [C] – Многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C (фирмы Microsoft ), а также Zortech C (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++.
  • [C++] – Язык программирования высокого уровня, созданный Бьярном Страустрапом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).
  • [C Sharp] – объектно-ориентированный язык программирования, о разработке которого в 2000 г. объявила фирма Microsoft . По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки C и С++ для того, чтобы они могли более эффективно создавать Интернет-приложения. Указывается, что C # будет тесно интегрирован с языком XML[19]

Глава 2. Программирование Java

2.1 История и краткий обзор языка Java

В 1991 году в компании Sun Microsystems началась разработка языка Oak (дуб). В конце 1992 года появился первый вариант этого языка. С весны 1995 года данный язык стал называться Java. Вначале была создана версия языка Java 1.0, потом появилась версия 1.1, а затем появился Java 2, которым мы пользуемся и сейчас.[20]

Итак, с чего же всё началось? Куда нас уводят корни языка программирования Java? Поговорим о проекте «Green». Известно, что 5 декабря 1990 года компания Sun сделала предложение Патрику Нотону. Поставленная задача – «создать что-нибудь необычайное». 1 февраля 1991 года Патрик Нотон, Джеймс Гослинг и Майк Шеридан вплотную приступили к реализации проекта, который и получил название Green. С самого начала проект не рассматривался как чисто исследовательский, задача была создать реальный продукт, устройство.

Сначала предполагалась разработка небольшого языка, который можно было бы использовать для программирования бытовых устройств, например, контроллеров для переключения каналов кабельного телевидения (cable TV switchboxes). Поскольку такие устройства не потребляют много энергии и не имеют больших микросхем памяти, язык должен был быть маленьким и генерировать очень компактные программы. Кроме того, поскольку разные производители могут выбирать разные центральные процессоры (Central Processor Unit— CPU), было важно не завязнуть в какой-то одной архитектуре компьютеров.[21]

Так родилась идея разработать небольшое устройство с жидкокристаллическим сенсорным экраном, которое будет взаимодействовать с пользователем с помощью анимации, показывая, чем можно управлять и как. Чтобы создать такой прибор, Нотон начал работать над специализированной графической системой, Гослинг взялся за программное обеспечение, а Шеридан занялся бизнес-вопросами.

Стремясь изобрести небольшой, компактный и машинонезависящий код, разработчики возродили модель, использованную при реализации первых версий языка Pascal на заре эры персональных компьютеров. Ведь именно Никлаус Вирт, создатель языка Pascal, в свое время разработал машинонезависимый язык, генерирующий промежуточный код для некой гипотетической машины. Этот язык стал коммерческим продуктом под названием UCSD Pascal. Этот промежуточный код можно выполнять на любой машине, имеющей соответствующий интерпретатор.

Инженеры, работавшие над проектом "Green", также использовали виртуальную машину, что решило их основную проблему. Однако большинство сотрудников компании Sun имели опыт работы с операционной системой UNIX, поэтому в основу разрабатываемого ими языка был положен язык C++, а не Pascal. В частности, они сделали язык объектно-, а не процедурно- ориентированным.[22]

Существует история, что в июне 1991 года Гослинг начинает разработку замены C++. Создавая новый каталог и раздумывая, как его назвать, он выглянул в окно, и взгляд его остановился на растущем под ним дереве. Так язык получил свое первое название - OaK (дуб).

К сожалению, покупателей продукции, разработанной в рамках проекта «Green» не было. В промежуток с 1993 по 1994 год продолжались их безрезультатные поиски. Наконец, в начале 1994 года стало понятно, что идея интерактивного телевидения оказалась нежизнеспособной.

Анализ состояния FirstPerson показал, что компания не имеет ни одного клиента или партнера и ее дальнейшие перспективы довольно туманны. Руководство Sun требует немедленного составления нового бизнес-плана, позволяющего компании снова приносить прибыль.

Новый бизнес-план FirstPerson ставил цель, которая была неким промежуточным шагом от интерактивного телевидения к возможностям Internet. Идея заключалась в создании платформы для кабельных компаний, пользователями которой были бы обычные владельцы персональных компьютеров, объединенные сетями таких компаний. Используя технологию OaK, разработчики могли бы создавать приложения, по функциональности аналогичные программам, распространяемым на CD-ROM, однако обладающие интерактивностью, позволяющей людям обмениваться любой информацией через сеть. Ожидалось, что такие сети в итоге и разовьются в интерактивное телевидение, и тогда OaK станет полноценным решением для этой индустрии. Об Internet и Mosaic пока не говорилось ни слова.[23]

Опорной точкой стал тот момент, когда создатели FirstPerson, наконец, обратили внимание на Internet. Они поняли, что функциональность тех сетевых приложений, для которых создавался OaK, очень близка к WWW.

Гослинг пересматривает программный код платформы, а Нотон берется за написание приложения, которое сразу бы продемонстрировало всю мощь OaK для Internet.

Несмотря на то, что к середине 1994 года WWW достиг невиданных размеров (конечно, по меркам того времени), web-страницы по-прежнему были скорее похожи на обычные бумажные издания, чем на интерактивные приложения. По большей части вся работа в сети заключалась в отправке запроса на web-сервер и получении ответа, который содержал обычный статический HTML -файл, отображаемый браузером на стороне клиента. Уже тогда функциональность web-серверов расширялась с помощью CGI (Common Gateway Interface). Эта технология позволяла по запросу клиента запускать на сервере обычную программу и ее результат отсылать обратно в качестве ответа. Поскольку в то время скорость каналов связи была невысокой (хотя, похоже, пользователи никогда не будут удовлетворены возможностями аппаратуры), клиент мог ждать несколько минут, чтобы лишь увидеть сообщение о том, что он ошибся в одной букве запроса. Динамическое построение графиков при таком способе реализации означало бы генерацию GIF-файлов в реальном времени. А ведь зачастую клиентские машины являются полноценными персональными компьютерами, которые могли бы брать значительную часть работы взаимодействия с пользователем на себя, разгружая серверы. [24]

После проведения всех подготовительных работ была организована конференция SunWorld. Предполагалось, что это будет короткое информационное объявление, так как главная цель этого мероприятия – UNIX-системы. Однако все произошло не так, как планировалось.

Известно, что в день конференции, после длинных и сложных переговоров, Sun подписывает важнейшее соглашение. Вторая сторона – компания Netscape, основанная в апреле 1994 года Джеймсом Кларком (он уже сыграл роль в судьбе OaK два года назад, когда перехватил предложение от Time Warner) и Марком Андриссеном (создателем NCSA Mosaic). Эта компания стала лидером рынка браузеров после того, как в декабре 1994 года вышла первая версия Netscape Navigator, которая была открыта для бесплатного некоммерческого использования, что позволило занять на тот момент 75% рынка.

23 мая 1995 года технологии Java и HotJava были официально объявлены Sun и тогда же представители компании сообщили, что новая версия самого популярного браузера Netscape Navigator 2.0 будет поддерживать новую технологию. По сути, это означало, что отныне Java становится такой же неотъемлемой частью WWW, как и HTML. Уже второй раз презентация закончилась овацией - победное шествие Java началось.[25]

Итак, как мы знаем, Java имеет несколько версий. Первую версию языка Java компания Sun выпустила в начале 1995 года. Через несколько месяцев после нее появилась версия Java 1.02. Но эта версия оказалась «сырая», быстро поняли, что версия Java 1.02 не подходит для разработки серьезных приложений. Следующая версия Java 1.1, устранила большинство недочётов, намного улучшив возможность отражения и добавив новую модель событий для программирования графического пользовательского интерфейса. Несмотря на это, она все еще была довольно ограниченной. Выпуск версии Java 1.2 стал основной новостью в 1998 году. В новой версии слабые средства для создания графического пользовательского интерфейса и графических приложений были заменены сложным и масштабным инструментарием. Версии 1.3 и 1.4 стандартного издания пакета инструментальных средств намного совершеннее первоначального выпуска языка Java. Они обладают новыми возможностями и, разумеется, содержат намного меньше ошибок. В таблице (приложение 2) показан стремительный рост объема библиотеки API по мере появления новых версий стандартного издания пакета SDK.

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

Следует различать языки Java Script и Java.

Общие свойства Java Script и Java:

  • легкость в освоении. По этому параметру Java Script сравнивают с Visual Basic - чтобы использовать эти языки, опыт программирования не требуется;
  • кроссплатформенность. Код Java Script выполняется браузером. Подразумевается, что браузеры на разных платформах должны обеспечивать одинаковую функциональность для страниц, использующих язык сценариев. Однако это выполняется примерно в той же степени, что и поддержка самого HTML, – различий все же очень много;
  • открытость; спецификация языка открыта для использования и обсуждения сообществом разработчиков;
  • все перечисленные свойства позволяют утверждать, что Java Script хорошо приспособлен для Internet-программирования;
  • синтаксисы языков Java Script и Java очень похожи. Впрочем, они также довольно сильно напоминают язык С;
  • язык Java Script не объектно-ориентированный (хотя некоторые аспекты объектно-ориентированного подхода поддерживаются), но позволяет использовать различные объекты, предоставляемые браузером. [26]

Оба языка были объявлены компаниями Sun и Netscape с интервалом в несколько месяцев. Вышедший вскоре после этого Netscape Navigator 2.0 поддерживал обе новые технологии. Возможно, само название Java Script было дано для того, чтобы воспользоваться популярностью Java, либо для того, чтобы еще больше расширить понятие «платформа Java».

Несмотря на большое количество схожих характеристик, Java и Java Script – совершенно различные языки, и в первую очередь – по назначению. Если изначально Java позиционировался как язык для создания Internet-приложений (апплетов), то сейчас уже очевидно, что Java – это полноценный язык программирования. Что касается Java Script, то он полностью оправдывает свое название языка сценариев, оставаясь расширением HTML.[27]

2.2 Базовые понятия языка

В настоящее время работа Java поддерживается всеми основными компьютерными платформами. Самостоятельное приложение, предназначенное для автономной работы, компилируется и выполняется на локальной машине под управлением системы времени выполнения Java.

Программирование на Java (он является компилирующим языком) имеет то преимущество, что код, написанный на данном языке программирования, переводится с помощью соответствующей программы-транслятора в так называемый байт-код, а он, в свою очередь, – в машинный код с помощью виртуальной машины Java (Java Virtual Machine). Поэтому написанная на Java программа выполняема на любом компьютере с любой системой, лишь бы на нем была установлена виртуальная машина Java. Таким образом и обеспечивается одно из главных преимуществ языка Java – переносимость создаваемых на нем программ на компьютеры разных типов.[28]

Программы, разработанные на языке программирования Java, можно разделить по своему назначению и функциональности на две большие группы[29]:

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

Вторая группа – это так называемые аплеты (applets). Аплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.

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

Каждый апплет – это небольшая программа, динамически загружаемая по сети с Web сервера при открытии в браузере HTML страницы, в которой имеется ссылка на апплет – точно так же, как картинка, звуковой файл или элемент мультипликации. Главная особенность апплетов заключается в том, что они являются настоящими программами, а не очередным форматом файлов для хранения мультфильмов или какой-либо другой информации.

Поскольку к Интернет подключались компьютеры с различной архитектурой, различными процессорами и операционными системами, то практически было невозможно создать программу, совместную со всеми средами. Аплеты Java легко решили все эти проблемы. Использование аплетов позволило легко добавлять динамичные фрагменты в ранее статичный мир HTML.[30]

Апплет не просто проигрывает один и тот же сценарий, а реагирует на действия пользователя и может динамически менять свое поведение. С помощью апплетов вы можете сделать страницы сервера Web динамичными и интерактивными. Апплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Для повышения производительности апплетов в браузерах используется компиляция «на лету» – Just-In-Time compilation. При первой загрузке аплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается. В результате общая скорость выполнения аплета Java увеличивается в несколько раз. Из соображений безопасности апплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web.

Одной из значительных задач, стоящих перед разработчиками объектно-ориентированных языков программирования, является дилемма выбора в пользу объектов или простых типов. В Java эта проблема решена следующим образом: существуют восемь простых типов (byte, short, int, long, char, float, double, boolean). Переменные такого типа обрабатываться процессором непосредственно, без дополнительного расхода ресурсов. Простые типы Java работают быстро и эффективно. Поэтому циклы с использованием простых типов выполняются с максимально возможной скоростью. В Java обращение ко всем объектам производится при помощи ссылок, а не напрямую. Поэтому в программе нет непосредственного управления объектами.[31]

Таким образом, в языке Java каждая переменная имеет тип. При объявлении переменной сначала указывается ее тип, а затем — ее имя.

Например: double salary;

int vacationDays;

long earthPopulation;

char yesChar;

boolean done.

Имя переменной должно начинаться с буквы и представлять собой комбинацию букв и цифр. Термины «буквы» и «цифры» в языке Java имеют более широкое значение, чем в большинстве других языков программирования. Буквами считаются символы "а1—'Z', 'a'—"z1,'' и любой символ в кодировке Unicode. Аналогично цифрами считаются как обычные десятичные цифры '0' - '9', так и любые символы в кодировке Unicode, использующиеся для обозначения цифры в каком-либо языке. Символы наподобие '+' или '©', а также пробел нельзя использовать в именах переменных. Все символы в имени переменной важны. Длина имени переменной практически не ограничена. [32]

Конечно, можно отметить ещё много аспектов языка. Такой язык программирования, как Java постоянно эволюционирует и приспосабливается. С самого начала Java революционизировал среду программирования, и эта революция продолжается до сих пор. Java и сейчас находится на передовой линии разработки языков программирования.

2.3 Различия между Java и С++

Синтаксис Java близок к синтаксису языка C++. Унаследовав самое лучшее от языка программирования C++, язык Java при этом избавился от некоторых недостатков C++, в результате чего на нем стало проще программировать.

Огромное преимущество Java заключается в том, что на этом языке можно создавать приложения, способные работать на различных платформах. К сети Internet подключены компьютеры самых разных типов - Pentium PC, Macintosh, рабочие станции Sun и так далее. Даже в рамках компьютеров, созданных на базе процессоров Intel, существует несколько платформ, например, MicrosoftWindows версии 3.1, Windows 95, Windows NT, OS/2, Solaris, различные разновидности операционной системы UNIX с графической оболочкой X¬Windows. Между тем, создавая сервер Web в сети Internet, хотелось бы, чтобы им могло пользоваться как можно большее число людей. В этом случае выручают приложения Java, предназначенные для работы на различных платформах и не зависящие от конкретного типа процессора и операционной системы

Может сложиться впечатление, что различия между языками C++ и Java носят чисто внешний, косметический характер. На самом деле это не так. Чем глубже проникать в концепцию технологии Java, тем отчетливее будет вырисовываться непохожесть Java и C++. Первое проявление непохожести языков можно увидеть среди массивов. В отличие от языка C++ в Java все массивы являются динамическими с автоматической проверкой ситуации выхода за пределы массива. Поэтому если известно имя массива, можно достаточно просто узнать его размер. Более того, в Java существенно переработана концепция указателей. [33]

Внешний эффект связан с тем, что в Java указатели как таковые отсутствуют, хотя пытливый ум заметит их неявное присутствие. Например, в С++ имя массива является указателем на его первую ячейку. В Java имя массива является переменной, которая фактически служит ссылкой на массив. То есть, по большому счету, это тот же указатель, только надежно спрятанный от программиста. Таким образом, в Java переменная массива и сам массив — далеко не одно и то же. И хотя может показаться, что это неудобно, на практике все выглядит иначе. Вот самые простые примеры выгоды от такого подхода: в Java одной переменной массива можно присвоить значение другой переменной массива. При этом размеры соответствующих массивов могут и не совпадать — достаточно, чтобы совпадали размерности и тип. Нечто похожее можно сделать и в С++, но для этого придется немного потрудиться.

Аналогичная ситуация имеет место с объектами. Все объекты в Java создаются динамически, и объектная переменная является ссылкой на объект. Поэтому при присваивании объектов ссылка с одного объекта «перебрасывается» на другой объект. Данное обстоятельство постоянно следует иметь в виду при работе с объектами.[34]

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

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

В то же время утверждать, что С++ и Java – языки абсолютно разные, было бы некоторым преувеличением. Безусловно, для тех, кто знаком с С++, освоить Java особого труда не составит. Знание С++ является несомненным преимуществом, просто нужно иметь в виду упомянутые особенности языка Java.

Заключение

Современные языки программирования обеспечивают огромные преимущества, они структурированы и предоставляют интегрированную среду разработки. В настоящее время, любое среднее и крупное предприятие, имеет в своем штате группу программистов, обладающих знаниями программирования различных языков.

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

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

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

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

Библиография

  1. Аккуратов, Е.Е. Знакомьтесь: Java. Самоучитель/ Е.Е. Аккуратов. – М.: «Вильямс», 2006. – 247 с.
  2. Блох Джошуа Java. Эффективное программирование / Джошуа Блох. URL:https://codernet.ru/books/java/Bloch_Java_effectivnoe_programmirovanie/
  3. Васильев, А.Н. Java. Объектно-ориентированное программирование/ А.Н. Васильев. – Спб.: «Питер», 2011. – 400 с.
  4. Вязовик, Н.А.. Программирование на Java. Курс лекций/ Н.А. Вязовик. URL: https://nemaloknig.com/read-66060/
  5. Дейтел Х.М. Как программировать на С++/ Х.М. Дейтел. URL : https://codernet.ru/books/c_plus/kak_programmirovat_na_c/
  6. Изучаем Java / Кэти Сьерра, Берт Бейтс. – 2-е издание. – М.: Эксмо, 2012. – 708 с.
  7. История создания языков программирования// Наука. URL:https://scientifically.info/publ/7-1-0-77
  8. Либерти Джесс Освой самостоятельно C++ за 21 день/ Джесс Либерти. URL:https://e-libra.ru/read/223302-osvoy-samostoyatel-no-s-za-21-den.html#
  9. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев. – СПб.: БХВ-Петербург, 2008. – 320 с.
  10. Основные концепции языков программирования / Роберт У Себеста. – М.: «Вильямс», 2001. – 672 с.
  11. Секунов, Н.Ю. Самоучитель Visual C++/ Н.Ю. Секунов. – Спб.: «БХВ-Петербург», 2003. – 736 с.
  12. Современный англо-русский словарь компьютерных технологий. – М.: Бук-пресс, 2006. – 528 с.
  13. Страуструп Бьерн Язык программирования С++/ Бьерн Страуструп. URL:http://www.8361.ru/6sem/books/Straustrup-Yazyk_programmirovaniya_c.pdf
  14. Флэнаган, Д. Java в примерах. Справочник/ Д. Флэнаган. – Спб.: Символ – Плюс, 2003. – 668с.
  15. Хорстманн, К.С. Основы Java / К.С. Хорстманн. – М.: «Вильямс», 2003. – 848 с.
  16. Шилдт Герберт Полный справочник по C ++/ Герберт Шилдт. – 4-е издание. – М.: «Вильямс», 2010.– 543 с.
  17. Шилдт Герберт C++ для начинающих/ Герберт Шилдт. – М.: Вильямс, 2007. – 546 с.
  18. Шилдт Герберт, Холмс Джеймс Искусство программирования на Java/ Герберт Шилдт, Джеймс Холмс. – М.: Вильямс, 2005. – 672 с.
  19. Эккель Б. Философия Java / Б. Эккель. – СПб.: Питер, 2001. – 640 с.
  20. Язык программирования C. Лекции и упражнения / Прата Стивен. – М.: Вильямс, 2015. – 928 с.

Приложение

1

C:\Users\Полина\Desktop\Рабочий стол\Программирование классификация.PNG

Приложение 2

  1. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев. – СПб.: БХВ-Петербург, 2008. – 11с.

  2. История создания языков программирования. URL: https://scientifically.info/publ/7-1-0-77

  3. Современный англо-русский словарь компьютерных технологий. – М.: Бук-пресс, 2006. – 378 с.

  4. Аккуратов, Е.Е. Знакомьтесь: Java. Самоучитель/ Е.Е. Аккуратов. – М.: «Вильямс», 2006. – 15 с.

  5. Современный англо-русский словарь компьютерных технологий. – М.: Бук-пресс, 2006. – 501 с.

  6. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев. – СПб.: БХВ-Петербург, 2008. – 12 с.

  7. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев. – СПб.: БХВ-Петербург, 2008. – 13 с.

  8. История создания языков программирования. URL:https://scientifically.info/publ/7-1-0-77

  9. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев. – СПб.: БХВ-Петербург, 2008. – там же

  10. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев. – СПб.: БХВ-Петербург, 2008. – 19 с.

  11. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев. – СПб.: БХВ-Петербург, 2008. – 20 с.

  12. История создания языков программирования. URL: https://scientifically.info/publ/7-1-0-77

  13. Шилдт Герберт C++ для начинающих/ Герберт Шилдт. – М.: Вильямс, 2007. – 23 с.

  14. Язык программирования C. Лекции и упражнения // Прата Стивен. – М.: Вильямс, 2015. – 26 с.

  15. Шилдт Герберт C++ для начинающих/ Герберт Шилдт. – М.: Вильямс, 2007. – 25 с.

  16. Страуструп Бьерн Язык программирования С++/ Бьерн Страуструп. URL:http://www.8361.ru/6sem/books/Straustrup-Yazyk_programmirovaniya_c.pdf

  17. Шилдт Герберт C++ для начинающих/ Герберт Шилдт. – М.: Вильямс, 2007. – 25 с.

  18. Шилдт Герберт C++ для начинающих/ Герберт Шилдт. – М.: Вильямс, 2007. – 26 с.

  19. Шилдт Герберт C++ для начинающих/ Герберт Шилдт. – М.: Вильямс, 2007. – 26 с.

  20. Аккуратов, Е.Е. Знакомьтесь: Java. Самоучитель/ Е.Е. Аккуратов. – М.: «Вильямс», 2006. – 19 с.

  21. Хорстманн, К.С. Основы Java / К.С. Хорстманн. – М.: «Вильямс», 2003. – 27с.

  22. Хорстманн, К.С. Основы Java / К.С. Хорстманн. – М.: «Вильямс», 2003. – 28 с.

  23. Вязовик, Н.А.. Программирование на Java. Курс лекций/ Н.А. Вязовик. URL: https://nemaloknig.com/read-66060/

  24. Вязовик, Н.А.. Программирование на Java. Курс лекций/ Н.А. Вязовик. URL: https://nemaloknig.com/read-66060/

  25. Шилдт Герберт, Холмс Джеймс Искусство программирования на Java/ Герберт Шилдт, Джеймс Холмс. – М.: Вильямс, 2005. – 18 с.

  26. Вязовик, Н.А.. Программирование на Java. Курс лекций/ Н.А. Вязовик. URL: https://nemaloknig.com/read-66060/

  27. Вязовик, Н.А.. Программирование на Java. Курс лекций/ Н.А. Вязовик. URL: https://nemaloknig.com/read-66060/

  28. Аккуратов, Е.Е. Знакомьтесь: Java. Самоучитель/ Е.Е. Аккуратов. – М.: «Вильямс», 2006. – 15 с.

  29. Аккуратов, Е.Е. Знакомьтесь: Java. Самоучитель/ Е.Е. Аккуратов. – М.: «Вильямс», 2006. – 19 с.

  30. Шилдт Герберт, Холмс Джеймс Искусство программирования на Java/ Герберт Шилдт, Джеймс Холмс. – М.: Вильямс, 2005. – 25 с.

  31. Шилдт Герберт, Холмс Джеймс Искусство программирования на Java/ Герберт Шилдт, Джеймс Холмс. – М.: Вильямс, 2005. – 19 с.

  32. Хорстманн, К.С. Основы Java / К.С. Хорстманн. – М.: «Вильямс», 2003. – 64 с.

  33. Васильев, А.Н. Java. Объектно-ориентированное программирование/ А.Н. Васильев. – Спб.: «Питер», 2011. – 11 с.

  34. Васильев, А.Н. Java. Объектно-ориентированное программирование/ А.Н. Васильев. – Спб.: «Питер», 2011. – 12 с.