Файл: ПОНЯТИЕ «ЯЗЫКИ ПРОГРАММИРОВАНИЯ.pdf

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

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

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

Добавлен: 23.05.2023

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  • char – символьный;
  • int - целое число;
  • float - с плавающей точкой;
  • double - двойной точности;
  • bool - логический тип.[42]

Для формирования других типов данных используют простые типы и так называемые спецификаторы. Типы данных созданы на базе простых типов с использованием спецификаторов называют сложенными типами данных. В С ++ определены четыре спецификатора типов данных:

  • short – короткий;
  • long – длинный;
  • signed – знаковый;
  • unsigned – беззнаковый.

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

По месту объявления переменных в языке Си++ можно разделить на три класса: локальные, глобальные и формальные параметры функции. Локальные переменные объявляются внутри функции и доступны только в ней. Формальные параметры функции описываются в списке параметров функции.

Ввод-вывод данных в языке С ++ осуществляется или с помощью функций ввода-вывода в стиле С или с использованием библиотеки классов С ++. Преимущество объектов С ++ в том, что они просты в использовании, особенно если ввода-вывода достаточно просто. Функции ввода-вывода, унаследованные от C, более громоздкие, но подходят для задач с форматированным выводом данных[43].

2.12. Java

JAVA - это объектно-ориентированный язык программирования, разработанный Дж. Ослингом и запущенный в 1995 г. в качестве одного из ключевых компонентов платформы JAVA Sun Microsystems.

Синтаксис языка взят в большинстве из языка программирования С ++ и С, но все же JAVA имеет более простую объективную модель и более низкий уровень объектов. JAVA - приложения обычно транслируются в байт-код (длина каждого кода операции - один байт), который может быть обработан любой виртуальной машиной JAVA (Java Virtual Mashine. JVM) независимо от компьютерной архитектуры.

Стоит отметить, что первоначально реализация ссылок на компиляторы JAVA, виртуальных машин и библиотек классов, была представлена компанией Sun в 1995 г. В мае 1997 г. вместе с JAVA Communitz Process Sun разработала технологию JAVA согласно GNU General Public License. Другие компании также искали альтернативы технологии, предложенной Sun как GNU Compiler для JAVA и GNU Classpath.[44]


Разрабатывая язык, специалисты руководствовались пятью задачами, которые были преобразованы в следующие принципы:

простота в использовании, объектная ориентированность и легкость изучения;

  • надежность и безопасность;
  • независимость от архитектуры;
  • возможность интерпретации;
  • интерактивность и динамичность.

Для того, чтобы понять, как работать с языком JAVA, необходимо, в первую очередь, познакомиться с платформой и характеристикой этого языка.

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

Значительное количество ранних систем, в которой вводилась возможность независимости от платформы, сталкивалась с недостатком заключенному в снижении производительности.

Байт-код легко переводится непосредственно в родные машинные коды, независимо от того, что в JAVA используется интерпретатор[46], при котором достигается очень высокая производительность. Инструкции java bytecode похожи с инструкциями машинного кода, но предназначены для виртуальной машины и созданы специально для аппаратного владельца.

Конечные пользователи применяют обычно Java Runtime Environment (JRE - конфигурация виртуальной машины, необходимая для выполнения Java приложений), установленную, как правило, на собственном компьютере для приложений Java или в веб-браузере для Java апплетов[47].

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

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

Выводы по Главе 2

В данной главе были рассмотрены основные языки программирования высокого уровня, которые стали популярными в мире. из всего высше сказанного, можно сделать вывод, что, начиная с 60-х гг. ХХ в., изучение и разработка языков программирования для ЭВМ занимало одно из основных мест в сфере компьютерных технологий. Также, немаловажно, что каждый из рассмотренных языков дал толчок для развития языков программирования высокого уровня с повышенной гибкостью.


ГЛАВА 3. НАИБОЛЕЕ ГИБКИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ В СОВРЕМЕННОМ МИРЕ

3.1. TYPESCRIPT как одни из современных языков программирования высокого уровня

Как всем известно, каждый из веб-разработчиков должен в совершенстве знать HTML и JavaScript. Без этих языков, включая и CSS, невозможно создать полноценный, современный веб-ресурс. Конечно, современные веб-приложения создаются с использованием серверных технологий, таких как NodeJS или ASP.NET и др. За последние годы, невозможно не заметить роста популярности интерпретированного языка программирования JavaScript на мировом рынке. [48]Этот язык, будучи созданным для решения вопроса манипулирования элементами веб-страницы, сейчас используется почти повсюду, от десктопных приложений, как например, Windows 8,10 до смартфонов, которые работают на таких операционных системах, как Android или iOS.

Несмотря на все преимущества, данный язык имеет и свои недостатки. Так, JavaScript не был спроектирован для решения больших задач, чем те, которые связаны с манипулированием веб-страницей, однако разработчики с каждым годом улучшают его, дополняя новыми возможностями, а также исправляя ошибки, при этом поддерживая совместимость с предыдущими версиями[49].

В данной работе, рассмотрен язык, который называется TypeScript, который было создан в Microsoft под руководством А. Хейлсберг, который создал такие языки как C #, Delphi и т.д . TypeScript решает основные проблемы JavaScript, как, например, использование статичных типов, что значительно упрощает дебагинг кода и его тестирование. Специалисты с Google используют TypeScript как основной язык своего нового Фреймворка Angular2.

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

Каждый файл TypeScript имеет расширение «.ts», компилятор TypeScript проходит по каждому такому файлу и компилирует его в аналогичный файл с JavaScript кодом, таким образом, в проекте достаточно будет ссылаться на JavaScript файлы. Однако, TypeScript предоставляет и возможность настройки компилятора, используя специальный файл «tsconfig.json»[50].


Данный файл является коренным в проекте для TypeScript. В нем можно добавить файлы или папки с файлами для компиляции, и, аналогично, исключить файлы папки из процесса компиляции, изменить кодировку для компилированного файла и т.д. (Все опции доступны на официальном сайте языка TypeScript). Компилятор во время работы при неправильном сопоставлении типов не будет останавливать компиляцию, как, например, в C ++, Java, а лишь выдаст предупреждение о несопоставимости типов, поскольку это разрешено на языке JavaScript, где число может с легкостью быть переведено в термины и прочее, используя специальные методы для типов значения и объектов.

3.2. Сравнение TypeScript и JavaScript

В данном разделе приведены основные возможности языка TypeScript, которые невозможно использовать в JavaScript.

1. Использование статических типов

В отличие от JavaScript, в TypeScript разработчик должен писать тип переменной вместе с ее объявлением. TypeScript поддерживает основные типы, которые доступны и в JavaScript - number, string, boolean, null, object, undefined, symbol, promise и другие. Однако, в TypeScript разработчик может создать еще и enum (перечисление), void, any (тип параметра не определен во время компиляции), tuple (кортеж - нечто вроде массива, может иметь значение различных типов, однако данные типы необходимо описать, то есть кортеж - не то же, что и массив в JavaScript)[51].

Пример создания переменной в TypeScript:

let myVar: string = "Hello";

2. TypeScript позволяет создавать интерфейсы

Интерфейс - это контракт, который может принимать функция и реализует определенный класс, для того, чтобы код не зависел от конкретной реализации. Интерфейсы используются в таком популярном паттерне как «dependency injection[52]». Однако, в TypeScript интерфейсы используются в основном для передачи комплексных типов - объектов в определенную функцию, причем функция может возвращать объект, реализующий данный интерфейс (под реализацией имеется в виду то, что у объекта есть те параметры, описанные в интерфейсе, то есть их может быть и больше, однако проверяются только необходимые), то есть интерфейсы используются для проверки типов, которые передаются в функцию и используются компилятором.

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

Пример интерфейса в TypeScript:

interface Named {


name: string;

(а: string, b: string): string;

surname ?: string;

}

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

3. TypeScript позволяет создавать классы

Так, с выходом EcmaScript 6 в JavaScript также возможно использование классов, однако в TypeScript классы имеют большее значение и имеют больше функций. Во-первых, классы в TypeScript могут реализовывать интерфейсы, то есть, их можно передавать в функции, как и объекты, реализующие данный интерфейс. Во-вторых, в TypeScript классы имеют модификаторы доступа - public, private, protected, чего нет в JavaScript. В-третьих, в TypeScript можно создать абстрактный класс.

Итак, TypeScript на данный момент является более приспособленной для создания ООП кода. Конечно, в TypeScript, как и в JavaScript есть подражания, статические методы, конструкторы и свойства (getters, setters).

Простейший пример класса:

class Person {

private _name: string;

constructor (name: string) {

this._name = name;

}

public sayName (): string {

return this._name;

}

};

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

4. Поскольку TypeScript имеет статическую типизацию то в нем доступно приведения типов, благодаря специальным конструкциям.

В версии 1.5 разработчикам рекомендуется использовать специальный оператор «as»[53], и используется для приведения одного типа к другому.

5. В TypeScript можно создавать generic-типы и функции - аналог шаблонов в С ++.

Конечно, в простом JavaScript данный функционал не нужен, поскольку функцией можно передать параметр любого типа, однако сопровождать такой код очень трудно. В TypeScript можно вместо таких типов использовать и специальный тип «any»[54], но он имеет совсем другое значение. Как и в шаблонах С ++, generic тип используется для создания классов и методов, которые могут принимать параметры различных типов. Данный функционал является очень важным в любом языке со статической типизацией, пример generic типа:

function genFunc <T> (arg: T): T {

return arg;

}

let output = genFunc <number> (5);

В данном примере было создано простую generic-фунцию, что принимает параметр и возвращает его обратно. В переменную output будет записано число 5 и тип этой переменной - также число. Однако, мы могли использовать любой другой тип - интерфейс Named, string или класс Person[55].

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