ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ ИСПОЛЬЗОВАНИЯ АССЕМБЛЕРНЫХ ВСТАВОК В РАЗРАБОТКЕ ВЕБ-СИСТЕМ - Студенческий научный форум

XII Международная студенческая научная конференция Студенческий научный форум - 2020

ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ ИСПОЛЬЗОВАНИЯ АССЕМБЛЕРНЫХ ВСТАВОК В РАЗРАБОТКЕ ВЕБ-СИСТЕМ

Архипов Д.П. 1, Абрамова О.Ф. 1
1ВПИ (филиал) ВолгГТУ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Для начала рассмотрим, что представляет собой язык программирования Ассемблер. “Это машинно-ориентированный язык программирования низкого уровня, его команды прямо соответствуют отдельным командам машины или их последовательностям. Может рассматриваться как автокод, расширенный конструкциями языков программирования высокого уровня. Является существенно платформо-зависимым, для различных аппаратных платформ несовместим, хотя может быть в целом подобен. Несмотря на сложность восприятия, имеет возможность максимально использовать все особенности аппаратной платформы”[6]. Язык ассемблер может применяться во многих сферах программирования, в том числе и в разработке веб-систем.

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

Одним из вариантов является использование стандарта интерфейса CGI (используется для связи внешней программы с веб-сервером). Для программы достаточна возможность читать переменные среды (например, URL сайта), входные данные и возможность вывода данных, что позволяет написать её и на ассемблере.

Так же для примера можно привести Menuet OS - любительская операционная система для ПК, полностью написанная на ассемблере fasm. Основной задачей создания системы было вместить операционную систему с графическим интерфейсом на дискету 1,44 МБ. Машина с данной системой может использоваться как веб-сервер.

WASM

Не так давно завершилась разработка WebAssembly, это низкоуровневый формат байт-кода для клиентских скриптов на стороне браузера. Участие в его разработке принимали такие гиганты индустрии как: Mozilla, Google, Microsoft и Apple.

На практике WebAssembly реализуется разработчиками браузеров на основе существующего JavaScript-движка.WebAssembly призван не заменить Javascript, а избавить его от задач, для решения которых тот не предназначался. Теперь каждый язык пойдёт своим путём, Javascript будет выполнять задачи, не требующие больших вычислительных затрат, а wasm станет именно посредником: с его помощью будут переводить сложные программы с других языков высокого уровня. В результате мы получаем возможность писать эффективные веб-приложения на любом языке программирования, производительность которых вырастет. Например, вместо компиляции TypeScript в JavaScript разработчики теперь смогут компилировать свой код в WebAssembly.

В FAQ WebAssembly сказано, что новый формат придаст значительное увеличение производительности парсинга, потому как тип бинарного формата, который используется в WebAssembly, будет декодироваться гораздо быстрее, чем JavaScript может быть пропарсен (эксперименты показали более чем 20-кратную разницу).

Исполнение WebAssembly в браузере выглядит следующим образом: браузер как обычно загружает HTML-страницу, с которой выполняется JavaScript, который уже выполняет загрузку WebAssembly — получается «модуль» (WebAssembly module). После создаётся экземпляр модуля, для которого можно вызывать экспортируемые им функции.

Рисунок 1

Обратите внимание здесь (рис. 1) на красную стрелку: изнутри WebAssembly можно вызывать функции JavaScript. Давайте рассмотрим это подробнее на диаграмме последовательности(рис. 2):

Рисунок 2

Сначала из JavaScript вызываем WebAssembly, затем из WebAssembly вызываем функцию JavaScript.

Во втором вызове показано, как WebAssembly пользуется любыми API (например, DOM / WebGL и тд.). Данные вызовы происходят не на прямую, а только через JavaScript. В итоге мы получаем , что если будем интенсивно работать с API из WASM, то много времени будет теряться на «прокидывании» этих вызовов через JavaScript.

Вывод

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

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

Библиографический список

1. Золотов Е. Ассемблер для веб. Яваскрипт в отставку? – Компьютерра [Электронный ресурс]. – Режим доступа: https://www.computerra.ru/181070/wasm. (Дата обращения: 05.12.2019).

2. Электронный ресурс:https://habr.com/ru/post/342180/

3.Электронный ресурс:https://tproger.ru/translations/introduction-to-webassembly/

4. Абрамова О.Ф. Визуализация паттерна поведения пользователя web-системы / О.Ф. Абрамова // Кибернетика и программирование : электронный журнал. - 2019. - № 3. - C. 43-52. – DOI: 10.25136/2644-5522.2019.3.23017. – URL : https://nbpublish.com/library_read_article .php?id =23017.

5.Ребро И. В. Формирование инженерного мышления в процессе организации профессиональной ориентации у школьников [Электронный ресурс] / И.В. Ребро, Д.А. Мустафина, Г.А. Рахманкулова, О.Ф. Абрамова, Е.А. Перевалова, Т.А. Матвеева, Н.А. Соколова // Современные проблемы науки и образования : электрон. науч. журнал. - 2019. - № 3. – Режим доступа : https://www.science-education.ru/ru/article/view?id=28830.

6.Электронный ресурс: https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0

Просмотров работы: 9