Тип работы:
Предмет:
Язык работы:


Построение распределенных указателей для нового языка программирования на основе расширенного JSON

Работа №145027

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы27
Год сдачи2024
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
17
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 6
2. Обзор 7
2.1. Обзор языков программирования 7
2.2. Обзор к архитектуре сервера 7
2.3. Используемые библиотеки 9
3. Архитектура 12
3.1. Сервера 12
3.2. Библиотека для интерпретатора языка 12
3.3. Библиотека JsonLanguageUtils 14
4. Реализация 15
4.1. Сервер 15
4.2. Библиотека для интерпретатора языка 17
4.3. Библиотека JsonLanguageUtils 18
5. Тестирование 20
5.1. Тестирование сервера 20
5.2. Тестирование библиотек 21
6. Конфигурационное управление 24
6.1. Установочные файлы 24
6.2. CI и ReadMe 25
Заключение 26
Список литературы 27

В настоящее время продолжается процесс компьютеризации. Лю­ди пытаются автоматизировать все больше и больше процессов, для этих целей они используют множество разных языков программиро­вания. Как мы знаем, каждый язык программирования имеет свои особенности и различия. Одни языки используются в разработке веб­приложений, например в сервисной части или в визуализации страниц в браузере, вторые — в разработке игр, третьи — в разработке софтов и программных обеспечений. Данный список можно продолжать очень долго, что демонстрирует разнообразие языков программирования и сфер их применения.
Сам по себе процесс создания языка программирования — это труд­ная, кропотливая и объемная задача, требующая значительных усилий и времени. Она включает в себя разработку архитектуры языка, его ре­ализацию, оптимизацию для достижения высокой производительности и обеспечения различной функциональности. Кроме того, необходимо решить множество технических и концептуальных проблем для того, чтобы создать язык, который будет эффективно работать и соответ­ствовать потребностям разработчиков. На кафедре параллельных ал­горитмов было принято решение рассмотреть такой формат передачи данных, как JSON и взять его за основу нового языка программиро­вания. JSON (JavaScript Object Notation) [6] изначально предназначен для обмена данными между веб-приложениями. Он представляет собой легко читаемый формат, который стал широко используемым в веб­разработке и не только. На данный момент язык программирования, основанный на расширенном JSON, позволяет рассматривать файлы, как последовательность команд, подобных инструкциям языка ассем­блера. Однако, он умеет работать только с данными, которые хранятся на стеке: целочисленные числа, символы, числа с плавающей запятой. Как можно заметить в перечислении не хватает массивов, объектов и строк. Но какой язык программирования в настоящее время можно представить без ссылочных типов?
Возникает вопрос: какие архитектурные решения следует принять для эффективной реализации ссылочных типов, которые в будущем по­могут ускорить и увеличить возможности параллельных вычислений и обработку больших объемов данных? Для этого необходимо первона­чально создать в языке архитектуру, позволяющую эффективно рабо­тать со ссылочными объектами. Мы рассматриваем идею внедрения распределенных указателей, которые будут располагаться на удален­ных компьютерах, при этом сами указатели будут иметь человекочи­таемый вид. Это позволит увеличить доступное хранилище данных и расширить возможности для обработки.
Для достижения данной цели предлагается создать REST-сервер в виде приложения и библиотеку по работе с указателями, которая будет являться готовым компонентом языка и максимально облегчит внедре­ние данной логики в интерпретатор. Сервер будет принимать и отправ­лять JSON-объекты, массивы или конкретные значения, сохраняя их. Библиотека для интерпретатора должна самостоятельно работать со ссылочными объектами, а также на основе входящих параметров опре­делять, куда необходимо обратиться для получения или записи дан­ных.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе работы были выполнены следующие задачи.
1. Спроектирован и реализован сервер.
2. Реализованы библиотеки для работы с сервером.
3. Протестированы сервер и библиотеки, как отдельные компоненты, так и единые.
4. Сервер упакован в установочный пакет операционной системы Windows.
5. Сервер упакован в установочный пакет операционной системы Linux на базе Debian.


[1] Catch 2.— URL: https://catch2-temp.readthedocs.io/en/ latest/ (дата обращения: 2024-01-10).
[2] Crow.— URL: http://crowcpp.org/master/ (дата обращения: 2024-01-10).
[3] Erlang.— URL: https://yzh44yzh.github.io/post/distributed_ erlang.html (дата обращения: 2024-05-22).
[4] Httplib.— URL: https://github.com/yhirose/cpp-httplib (дата обращения: 2024-01-10).
[5] Inno Setup.— URL: https://jrsoftware.org/ishelp/ (дата обращения: 2024-04-22).
[6] JSON.— URL: https://www.json.org/json-en.html (дата обращения: 2024-01-10).
[7] Nlohmann JSON.— URL: https://json.nlohmann.me/ (дата обращения: 2024-01-10).
[8] Pistache. — URL: https://github.com/pistacheio/pistache (дата обращения: 2024-01-10).
[9] UML.— URL: https://www.uml.org/ (дата обращения: 2024-04­22).
[10] Web Toolkit.— URL: https://www.webtoolkit.eu/wt (дата обращения: 2024-01-10).
[11] YAML. — URL: https://yaml.org/ (дата обращения: 2024-05-22).
[12] YAMLScript.— URL: https://yamlscript.org/ (дата обращения: 2024-05-22).
[13] Настольная книга администратора Debian.— URL: https://www. debian.org/doc/manuals/debian-handbook/debian-packaging. ru.html (дата обращения: 2024-04-22).
[14] Описание процесса сборки пакета deb. — URL: https://www.dmosk. ru/instruktions.php?object=build-deb#build-optional (дата обращения: 2024-04-22).


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ