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

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

Содержание:

ВВЕДЕНИЕ

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

Разработка программ на языках высокого уровня значительно проще и ошибок намного меньше. К тому же время разработки программы значительно уменьшается, что является особенно важным фактором при работе над сложными программными проектами. Недостаток некоторых языков высокого уровня состоит в большом размере программ по сравнению с программами на языках низкого уровня. В то же время текст программ на языке высокого уровня гораздо меньше, но в байтах код, написанный на ассемблере, будет более компактным. Поэтому языки высокого уровня преимущественно используют для создания программного обеспечения для компьютеров и вычислительных устройств с большим объемом памяти. Языки же низкого уровня используются для написания программ к устройств, для которых критичным является размер программы. Языки высокого уровня делятся на универсальные и проблемно-ориентированные. Наиболее распространенные универсальные языки C#, C++, Basic, Pascal (Delphi) используются для разработки Windows-приложений. Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol, C и др.

Языки программирования для разработки Интернет-приложений скорее относятся к универсальным языкам. К ним относятся современные версии C#, Basic, J#.

Предмет исследования –приложения в языках программирования высокого уровня.

Цель курсовой работы: Обзор языков программирования высокого уровня.

Задачи, направленные на достижение цели курсовой работы:

  • проанализировать системы программирования;
  • изучить возможности языка программирования;
  • изучить возможности языка программирования высокого уровня;
  • выявить особенности Паскаль, C++, Python.

Рассмотрению вопроса графических приложений в языках программирования высокого уровня посвящены работы авторов И. А. Бабушкиной, С. М. Окулова, О. Е. Масленниковой, И. В. Гавриловой, Л. Г. Гагариной, Е. В. Кокоревой и других.

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

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

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

Рисунок 1. Классификация языков программирования

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

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

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

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

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

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

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

Языки программирования, имитирующие естественные языки, обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называют языками «высокого уровня». В настоящее время насчитывается несколько сотен таких языков, а если считать и их диалекты, то это число возрастет до нескольких тысяч. Языки программирования высокого уровня существенно отличаются от машинно-ориентированных (низкого уровня) языков. Во-первых, машинная программа в конечном счете записывается с помощью лишь двух символов 0 и 1. Во-вторых, каждая ЭВМ имеет ограниченный набор машинных операции, ориентированных на структуру процессора. Как правило, этот набор состоит in сравнительно небольшого числа простейших операций, типа: переслать число и ячейку; считать число из ячейки; увеличить содержимое ячейки на +1 и т.п. Команда на машинном языке содержит очень ограниченный объем информации, поэтому она обычно определяет простейший обмен содержимого ячеек памяти, элементарные арифметические и логические операции. Команда содержит код и адреса ячеек, с содержимым которой выполняется закодированное действие[2].

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

− алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;

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

− конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде;

− используется аппарат переменных и действия с ними;

− поддерживается широкий набор типов данных.

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

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

В данном пункте рассмотрим пополняющийся список популярных языков программирования, разметок и протоколов. Ссылки на описание каждого из них [21]:

Объектно-ориентированные языки Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основной концепцией которых есть совокупность программных объектов. Написание программы на языке представляется в виде последовательности создания экземпляров объектов и использование их методов. К ним относятся из первых языков 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. Возможности синтаксиса и использования

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

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

Scala [1]

Scala является популярным языком программирования, и, скорее всего, большинство ученых, работающих с данными, сталкивались с ним. Это мультипарадигмальный язык, поддерживающий использование открытого исходного кода. Язык был разработан в 2003 году Мартином Одерским. Scala – это сокращенная форма «Scalable Language». Он был создан для того, чтобы излагать стандартные основы программирования элегантным, безопасным и лаконичным образом.

Если вы знакомы с синтаксисом Java, вы можете быстро освоить Scala. Изучение этого языка значительно проще, если вы знаете другие языки, такие как Python, C или C ++. Многие предпочитают Scala, так как он стабильный, гибкий, быстрый и масштабируемый. Написание программного кода в Scala организуется и выполняется довольно быстрее по сравнению с Python. При этом его можно применять Scala для создания прибыльных продуктов, которые работают с огромным количеством данных.

Julia [2]

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

Этот язык программирования является современным, высокопроизводительным и значительным, был создан группой математиков из Массачусетского технологического института (MIT) и ученых-компьютерщиков. Данный язык, в основном, применяется для манипуляции большим количеством данных и научных расчетов. Если вы раньше работали с такими языками как Matlab, R или Python, то Вы быстро привыкнете к Julia. Скорость Julia делает его отличным языком для машинного обучения и науки о данных.

JavaScript

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

Прежде чем приступить к работе с JavaScript, не мешало бы иметь опыт работы с HTML и иметь опыт работы с концепциями объектно-ориентированного программирования. Это дает вам основную идею разработки онлайн-приложений. Это также становится полезным, когда Вы расширяете свой модуль машинного обучения в браузере или мобильных приложениях. Помимо этого, в JavaScript есть замечательные библиотеки для разработки информационных панелей и визуализации данных. Многие методы машинного обучения, такие как сочинение музыки, распознавание возражений и жестов и т. д., могут быть реализованы с помощью TensorFlow.js, который является динамической библиотекой JavaScript для работы с данными.

Swift [3]

Если вы являетесь поклонником продукции Apple и Вам нравится использовать их многочисленные устройства и их привлекательную iOS, скорее всего, вам понравится Swift. Этот язык программирования является открытым, гибким и простым. Apple создала его для приложений OS x и iOS. Swift основан на лучшем из Objective-C и C, но без ограничений адаптируемости C. Это отличный язык для начинающих из-за его точного, но обширного синтаксиса и быстрой скорости работы приложений.

В последнее время 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# не требует указателей;
  • автоматическое управление памятью через сборку мусора;
  • формальные синтаксические конструкции для перечней, структур и свойств классов;
  • перегрузка операций для пользовательских типов;
  • возможность строить общие типы и общие члены с использованием синтаксиса;
  • полная поддержка техники программирования, основанной на использовании интерфейсов.

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

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

Разработка программы начинается с главной страницы приложения. На ней будут размещены следующие элементы:

1) Кнопки навигации по приложению.

2) Элемент frame.

Для перехода по страницам приложения необходимо написать функцию, которая будет перенаправлять пользователя на нужные ему страницы по нажатию кнопок, это происходит следующим образом:

string path = System.IO.Path.GetFullPath("book.jpg");

private void Home_Click(object sender, RoutedEventArgs e)

{

 myFrame.Navigate(Class1.Mp);

Background = new SolidColorBrush(Colors.White);

playvideo = true;

}

Для оформления главной страницы приложения, требуется разбить элемент Grid, находящийся в элементе Grid главного окна на 2 строки и 4 столбца, для размещения в 1 строке кнопок навигации по разделам приложения, а во 2 строке элемента Frame.

Затем требуется поместить 4 кнопки навигации в 0 строку, эти кнопки будут иметь название «Домой» – выход на главную страницу приложения, кнопка «Книги» – переход на Page с книгами, кнопка – «Манги» – переход на Page с мангами, и кнопка выход.

Для перехода по страницам приложения необходимо написать функцию, которая будет перенаправлять пользователя на нужные ему страницы по нажатию кнопок, это происходит следующим образом:

private void Button_Click_1(object sender, RoutedEventArgs e)

{

myFrame.Navigate(Class1.M);

Background = new ImageBrush(new BitmapImage(new Uri(path)));

playvideo = false;

StartVideo();

}

private void Exit_Click(object sender, RoutedEventArgs e)

{

Close();

}

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

Рисунок 4. Книжный интернет-магазин

Определение MySQL. MySQL — это система управления реляционными базами данных с открытым исходным кодом. Имя MySQL — это сочетание имени дочери соучредителя Майкла Видениуса «My» и SQL - аббревиатуры для языка структурированных запросов. MySQL является продуктом корпорации Oracle. MySQL поддерживает много стандарта SQL [1].

Что касается операционной системы, то MySQL поддерживается практически всеми операционными системами, такими как Windows, Mac OS X, Linux, BSD, UNIX, z / OS, Symbian, AmigaOS. Система баз данных MySQL используется в сети для добавления, доступа и управления данными в Интернете. В MySQL инструмент phpMyAdmin отвечает за предоставление графического интерфейса и интерфейса SQL.

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

Определение PostgreSQL. PostgreSQL — это система управления объектно- реляционными базами данных с открытым исходным кодом. Группа глобального развития разрабатывает PostgreSQL. Он использует множество стандартов SQL. PostgreSQL полностью совместим с ACID. Поддержка внешнего ключа, триггеры и объединение доступны в PostgreSQL [2].

PostgreSQL поддерживается операционными системами Windows, Mac OS X, Linux и BSD, но не операционными системами UNIX, z / OS, Symbian, AmigaOS. Язык программирования PostgreSQL очень расширяем. PostgreSQL использует инструмент pgAdmin для обеспечения графического интерфейса и интерфейса SQL.

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


 

ЗАКЛЮЧЕНИЕ

Высокоуровневые языки программирования, в плане создания ПО, стали всё по большей части удаляться от машинных кодов и реализовывать различные, помимо процедурного, парадигм программирования. К ним относят также и реализацию объектно-ориентированных принципов. C++, Java, Python, JavaScript, Ruby… – спектр языков данного типа наиболее популярен и востребован сегодня. Они предоставляют больше возможностей для реализации разнообразного ПО и нельзя однозначно определить «специализацию» каждого из них.

В последнее время набирает популярность и иной вид программирования - функциональное (дальнейшее развитие уровня языка). Здесь уже другой вид абстракции для вычислений – функции, которые берут в качестве аргументов набор функций и возвращают другую. Роль переменных играют те же функции (привычные нам переменные – просто константные выражения, аналогичные final перед объявлением типа в Java). Собственно функция замкнута в своей области видимости, результат её работы зависит только от переданных аргументов. Отсюда вытекают два замечательных свойства:

Для тестирования нам необходимы только аргументы функций (результат работы не зависит от внешних переменных и т. п.).

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

Однако и порог вхождения выше, чем для ООП: для эффективного кода необходимо строить программу, описывая в виде функций алгоритм выполнения. Но также для чистого функционального стиля неплохо бы знать азы логики и теории категорий. Наиболее популярные – Haskell, Scala, F#. Но не бойтесь, в Java (как и в других современных языках третьего поколения) появились элементы функционального программирования и их возможно комбинировать вместе с ООП.

Область логического программирования (следующий уровень языков) пока не нашла широкого практического применения в силу малой востребованности.

Построение программ требует знание основ дискретной математики, логики предикатов, средств ограничений и других разделов математической логики. Наиболее популярный активный язык – Prolog.

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

  1. Доусон М. Программируем на Pyton. – СПб.: Питер, 2017. – 416
  2. Мэтиз Э. Изучаем Python. Программирование игр, визуализация данных, веб-приложения. – Спб.: Питер, 2017. – 496 c.
  3. Химич А.В. Сравнительный анализ языков программирования: Паскаль, C++, Python // Молодежный научный форум: электр. сб. ст. по мат. XI междунар. студ. науч.-практ. конф. № 10(11). URL: https://nauchforum.ru/archive/MNF_interdisciplinarity/10(11).pdf (дата обращения: 21.08.2019) Базовые средства программирования/ В.Н. Шакин. - М.: Форум: НИЦ ИНФРА-М, 2015. - 304 с.
  4. Введение в специальность программиста: Учебник / В.А. Гвоздева. - 2-e изд., испр. и доп. - М.: ИД ФОРУМ: НИЦ Инфра-М, 2013. - 208 с.
  5. Голицына О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - 3-e изд., перераб. и доп. - М.: Форум: ИНФРА-М, 2015. - 400 с
  6. Ездаков, А. Л. Функциональное и логическое программирование: учебное пособие / А.Л.Ездаков. - 2-е изд. - М. : БИНОМ. Лаборатория знаний, 2011. - 119 с.
  7. Информатика, автоматизированные информационные технологии и системы: Учебник / В.А. Гвоздева. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2015. - 544 с.
  8. Каймин В.А.Информатика: Учебник/ Каймин В. А., 6-е изд. - М.: НИЦ ИНФРА-М, 2015. - 285 с
  9. Культин Н. Б. Основы программирования в Delphi XE. — СПб.: БХВ-Петербург, 2011. — 405 с.
  10. Культин, Н. Б. Основы программирования в Delphi 7 / Н.Б. Культин. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2011. — 640 с.
  11. Масленникова, О. Е. Основы искусственного интеллекта: учеб. пособие / О. Е. Масленникова, И. В. Гаврилова. - 2-е изд., стер. - М.: ФЛИНТА, 2013. - 282 c.
  12. Машнин Т. С. Современные Java-технологии на практике. — СПб.: БХВ-Петербург, 2010. — 560 с.
  13. Монахов В. В. Язык программирования Java и среда NetBeans. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2011. — 703 с.
  14. Окулов, С. М. Основы программирования / С. М. Окулов. - 5-е изд., испр. - М.: БИНОМ. Лаборатория знаний, 2011. - 440 с.
  15. Осипов Д. Л. Базы данных и Delphi. Теория и практика. — СПб.: БХВ-Петербург, 2011. — 746 с.
  16. Основы алгоритмизации и программирования: Учебное пособие / В.Д. Колдаев; Под ред. Л.Г. Гагариной. - М.: ИД ФОРУМ: ИНФРА-М, 2015. - 416 с.
  17. Программирование на языке Object Pascal: Учеб. пос. / Т.И.Немцова и др; Под ред. Л.Г.Гагариной. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2013. - 496 с.
  18. Программирование на языке высокого уровня. Учебное пособие / Т.И. Немцова; Под ред. Л.Г. Гагариной. - М.: ФОРУМ: ИНФРА-М, 2015. - 496 с.
  19. Программирование на языке Си/А.В.Кузин, Е.В.Чумакова - М.: Форум, НИЦ ИНФРА-М, 2015. - 144 с.
  20. Технология разработки программного обеспечения: Учеб. пос. / Л.Г.Гагарина, Е.В.Кокорева, Б.Д.Виснадул; Под ред. проф. Л.Г.Гагариной - М.: ИД ФОРУМ: НИЦ Инфра-М, 2013. - 400 с.
  21. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - 3-e изд., перераб. и доп. - М.: Форум: ИНФРА-М, 2015. - 400 с.