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

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

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

Добавлен: 31.03.2023

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

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

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ

1.1 Понятие о языках программирования высокого уровня

1.2 Виды языков программирования

Объектно-ориентированные языки Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основной концепцией которых есть совокупность программных объектов. Написание программы на языке представляется в виде последовательности создания экземпляров объектов и использование их методов. К ним относятся из первых языков Simula и SmallTalk, далее C++, Java.

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

Функциональные языки программирования Функциональные языки являются языками искусственного интеллекта. Программа, написанная на функциональном языке, состоит из последовательности функций и выражений, которые необходимо вычислить. Основной структурой данных является связный список. Функциональное программирование принципиально отличается от процедурного. Основными функциональными языками являются Lisp, Miranda, Haskel. Логические языки программирования Языки, ориентированные на решение задач без описания алгоритмов, языки искусственного интеллекта. Представителем логического программирования является Prolog, которым написано большинство экспертных систем.

Языки сценариев (скрипты) Языки относятся к объектно-ориентированным языкам, используются для написания программ, которые исполняются в определенной программной среде. Тексты программ, написанные на языке сценариев, можно включать в тело Html-документа. Первыми скриптами были Perl и Python, которые изначально были разработаны для операционной системы Unix, а уже в дальнейшем появились версии языков для операционных систем Windows и Macintosh. Для написания программ на языке сценариев необходимо знание процедур и функций системных библиотек. Языки, ориентированные на данные Языки ориентированы на работу с одним определенным типом данных. Например, APL работает с матрицами и векторами, Snobol обрабатывает строки, SETL выполняет операции над множествами. Особое развитие получили языки для работы с базами данных: 3GL, PL/SQL, FoxPro.

ГЛАВА 2. ОБЗОР СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАБОТЫ С «БОЛЬШИМИ ДАННЫМИ»

2.1. Возможности синтаксиса и использования

2.2 Программирование в разработке приложений для Аndroid

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

В последнее время Swift начал привлекать внимание сообщества специалистов в области данных и машинного обучения. Это настоятельно рекомендуется Джереми Ховардом, соучредителем fast.ai. Существует множество библиотек для выполнения таких задач, как высокопроизводительные вычисления в матричной математике, численных вычислений, использования методов глубокого обучения, обработки цифрового сигнала, разработки моделей машинного обучения и т.д.

Golang [4]

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

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

Spark [5]

Spark – это не столько язык, сколько среда, но есть причина, по которой он так популярен среди исследователей и инженеров в области работы с данными.

Spark предлагает высокоуровневые API-интерфейсы (интерфейс прикладного программирования) на R, Python, Scala и Java, а также предоставляет оптимизированный механизм, поддерживающий отличные графики выполнения. Он является открытым и быстрым кластерным фреймворком для вычислений, который применяется для обработки, проверки и оценки больших данных. Преимущество Spark перед другими фреймворками для работы с большими данными заключается в том, что они основаны на вычислениях в памяти, что позволяет ему работать очень быстро.

Минимального опыта в Python достаточно, чтобы быстро освоить Spark. Spark может выполнять множество заданий по обработке данных, таких как предварительная оценка данных, их создание и отладка.

2.2 Программирование в разработке приложений для Аndroid

Java - это язык программирования, впервые выпущенный Sun Microsystems еще в 1995 году. Его можно найти на самых разных типах устройств. Мы можем использовать его на вашем настольном ПК и даже на Raspberry Pi. Java не компилируется с собственным процессорным кодом, а скорее опирается на «виртуальную машину», которая понимает промежуточный формат, называемый байт-кодом Java. Каждая платформа, на которой работает Java, нуждается в реализации виртуальной машины (ВМ). На Android оригинальная виртуальная машина называется Dalvik. Google также начал предварительный просмотр своей виртуальной машины следующего поколения под названием ART. Задача этих виртуальных машин состоит в том, чтобы интерпретировать байт-код, который на самом деле является просто набором инструкций, аналогичных машинному коду, найденному в ЦП, и выполнять программу на процессоре. Виртуальные машины используют различные технологии, включая своевременную компиляцию (JIT) и своевременную компиляцию (AOT), чтобы ускорить процессы. Все это означает, что мы можем разрабатывать приложения для Android в Windows, Linux или OS X, а компилятор Java преобразует исходный код в байт-код. Это, в свою очередь, выполняется на встроенной в Android виртуальной машине. Это отличается от модели, используемой iOS, которая использует собственный компилятор, чтобы превратить Objective-C в машинный код ARM. Java используется для разработки под Android, потому что он очень популярен среди разработчиков, он не имеет сложностей с арифметикой указателей. Поскольку он работает на виртуальной машине, нет необходимости перекомпилировать код для каждого устройства, на котором он использовался. Хотя скорость является проблемой для JAVA, тем не менее, ее популярность и преимущества перевешивают скорость.


ЯЗЫК ПРОГРАММИРОВАНИЯ KOTLIN

Kotlin - это язык программирования со статической типизацией, который работает на виртуальной машине Java, а также может быть скомпилирован в исходный код JavaScript. Он был выпущен для широкой публики в феврале 2016 года. Его основная разработка - это команда программистов JetBrains из Санкт-Петербурга, Россия (название происходит от острова Котлин, недалеко от Санкт-Петербурга). В мае 2018 года команда Google Android объявила, что Kotlin теперь является официальным языком для разработки Android. Разработчики использовали Kotlin для создания приложений для Android в предыдущие годы, но Google только что объявил о поддержке этого.

И Kotlin, и Java можно использовать для создания приложений для Android. Теперь вопрос: Какая причина может быть использовать тот или иной язык программирования?

РАЗНИЦА МЕЖДУ KOTLIN И JAVA

Если требуется добавить некоторые дополнительные функции в класс, в большинстве языков программирования создается новый класс. Функция расширения является функцией-членом класса, который определен вне класса.

Функция расширения:

Функция расширения может быть разработана на примере (Рисунок 1).

В соответствии с примером нам нужна функция String, класс должен возвращать новую строку с удаленным первым и последним символом; этот метод недоступен в классе String. Функция расширения, объявленная вне класса, создает функциональность указанного класса, расширяя предопределенные функции.

Рисунок  1. Пример расширения

«Kotlin предоставляет возможность расширять класс новыми функциями без необходимости наследования от класса или использования любого типа шаблона проектирования, такого как Decorator. Это делается с помощью специальных объявлений, называемых расширениями. Kotlin поддерживает функции расширения и свойства расширения». Эта функция расширения отсутствует в Java. Для обеспечения функциональности функций расширения обычно используются платформы Android. Но Android Framework иногда усложняет ситуацию. Java предоставляет только одно решение - создание оболочек. Но Котлин дал нам преимущество функции расширения, которая устранит трудности, связанные с платформой Android.

Конструкторы[5]:

Kotlin может иметь как первичный конструктор, так и вторичный конструктор. Ключевое слово «конструктор» используется для объявления вторичного конструктора. Всегда следует ссылаться на первичный конструктор.


Рисунок  2. Конструктор на языке Kotlin

В приведенном выше примере (Рисунок 2) первичный конструктор имеет 3 параметра, а вторичный конструктор имеет 4 параметра. В случае перегрузки конструктора в JAVA код выглядел бы так (Рисунок 3):

Рисунок 3. Конструктор на языке Java

Эта вторичная функция конструктора отсутствует в Java. Полезность вторичного конструктора заключается в том, что он сокращает количество строк кода.

Null Safety:

Одна из наиболее распространенных ошибок во многих языках программирования, включая Java, заключается в том, что доступ к элементу пустой ссылки приведет к исключению пустой ссылки. В Java это будет эквивалентно NullPointerException или NPE для краткости.

Kotlin использует функцию под названием Null Safety для обработки ситуации с указателем NULL. Если это явно не вызвано, Kotlin не генерирует исключение NullPointerException.

При программировании на Kotlin исключение Null Pointer не нарушает поток кода в отличие от JAVA. Это дает вывод как NULL.

Lazy-Loading:

Lazy-Loading используется в компьютерных программах для отсрочки инициализации объекта до точки, в которой он необходим. Таким образом, функция отложенной загрузки уменьшает время загрузки. Kotlin дает нам функцию отложенной загрузки в отличие от JAVA. В случае java такой функции, как отложенная загрузка, не существует, поэтому во время запуска приложения загружается много ненужного содержимого, что замедляет загрузку приложения.

Анализируя, мы расшифровали, что у Java и Kotlin есть свои преимущества и недостатки. С точки зрения начинающих, Java является лучшим вариантом по следующим причинам:

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

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

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


1. Это делает разработку Android намного проще;

2. Kotlin помогает уменьшить количество ошибок и ошибок в коде;

3. Kotlin безопаснее;

4. Kotlin более лаконичен.

«Dart — язык программирования, созданный Google. Dart позиционируется в качестве замены/альтернативы JavaScript» [2]. Язык программирования Dart был выпущен компанией Google в 2011 г. И в то время он ещё не поддерживался современными браузерами, но веб-разработчики могли сконвертировать его код в код языка JavaScript. Для этого в последние версии браузеров того года был встроен компилятор Dart в JavaScript — dart2js.

Первый полноценный пакет языка Dart SDK 1.0 включал все необходимые инструменты для создания как простейших скриптов, так и полноценных веб-приложений. В данный пакет вошла нетребовательная к ресурсам и в то же время мощная среда разработки Dart Editor, среди возможностей которой — автозавершение кода, рефакторинг, переход к определениям, отладка и система подсказок и предупреждений. Одним из важнейших инструментов пакета была изменённая версия браузера Chromium с виртуальной машиной Dart VM — браузер Dartium, что позволял запускать нативный код. Кроме того, отладка кода осуществлялась непосредственно в Dart Editor, из чего следует, что веб-программист способен мгновенно увидеть результат своей работы.

Выделяются следующие наиболее примечательные особенности языка Dart:

Автоматическая инициализация полей. Если в списке аргументов конструктора перед именем аргумента идет this., поле с этим именем будет автоматически инициализировано значением аргумента;

Именованные конструкторы Как большинство динамических языков, Dart не поддерживает перегрузку. Но в случае методов это не так критично, потому что, в отличие от ситуации с конструкторами, есть возможность задать другое имя. В Dart данная проблема устраняется с помощью именованных конструкторов;

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

Функции. Как в большинстве современных языков, функции Dart — объекты первого класса, с замыканиями и облегчённым вариантом синтаксиса. Любая функция — это объект, возможности изменения которого практически безграничны. При этом Dart располагает несколькими способами создания функций — именованные функции и анонимные функции;

Определения верхнего уровня. Всё, что можно поместить в переменную, является объектом, а каждый объект — экземпляр какого-либо класса. Тем не менее, это не «догматическое» объектно-ориентированное программирование (ООП), поскольку не обязательно помещать всё внутрь классов. Вместо этого можно определять переменные и функции на верхнем уровне;


Операторы. В Dart используются те же операторы и с такими же приоритетами, что в C, Java и других подобных ему языках. Их поведение такое же, каким ожидается перед компилированием. Тем не менее, внутренняя реализация имеет свои особенности. Программист имеет возможность перегружать большинство операторов, создавая свои типы.

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

Удобство разработки. Синтаксис максимально прост для начинающего разработчика;

Увеличение скорости. Например, статическая типизация со всеми вытекающими преимуществами по быстродействию и возможностями позволяет отловить подавляющее число ошибок ещё на стадии компиляции;

Среда разработки. Dart поддерживается всеми популярными IDE: IDEA, WebStorm, Atom, Emacs, Visual Studio, Sublime Text, Vim;

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

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

Несмотря на представленные преимущества, Dart имеет и недостатки, вследствие чего он не стал заменой JavaScript:

Малое сообщество. Синтаксис максимально прост для начинающего разработчика;

Проблемы JavaScript преувеличены. Основная претензия к JavaScript заключается в том, что он является сильно ограниченным языком, при этом это противоречит реальному положению дел — он обширно используется как для простых скриптов, так и для сложных веб-приложений;

Как итог, в большинстве случаев вполне достаточно применения JavaScript, который хорошо подходит для создания базовой динамичности на странице, но как только приложение начинает разрастаться, можно заметить его недостатки. Поэтому разработчики Google создали Dart. И вполне вероятно, что Dart, наравне с JavaScript, в обозримом будущем распространится в среде веб-разработки. Принципиальная разница между JavaScript и Dart в том, что JavaScript основан на прототипах, а Dart — на объектах.

Возвращаясь к современному состоянию веб-среды, следует отметить, что Dart используется всё ещё редко. Так или иначе, Google выпускает Dart по бесплатной лицензии, что позволяет программисту легко писать свои приложения.

 В среде Visual C# с помощью платформы .NET Framework возможно создание приложений Windows, веб-служб, средств баз данных, компонентов, элементов управления и многое другое.

Особенности языка C#:

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