Использование низкоуровневого программирования в разработке веб-систем - Студенческий научный форум

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

Использование низкоуровневого программирования в разработке веб-систем

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

Введение

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

Ассемблер в разработке веб-серверов

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

Ещё одним примером может послужить MenuetOS – операционная система, полностью написанная на диалекте ассемблера FASM. Данная операционная система среди прочего функционала имеет в наличии стек TCP/IP, а сетевые приложения, включают в себя серверы FTP/HTTP/SMTP и клиенты IRC/HTTP/NNTP/TFTP, что позволяет использовать машину с данной ОС как веб-сервер. При всём этом интересной особенностью MenuetOS является то, что вся операционная система помещается на дискету объёмом 1,44 Мб.

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

WebAssembly

Отдельного внимания стоит рассмотрение представленного относительно недавно и находящегося в разработке стандарта эффективного низкоуровневого байт-кода WebAssembly (wasm), который совместно разрабатывается такими гигантами индустрии как Google, Apple, Mozilla и Microsoft, и уже считается одним из крупнейших и перспективных достижений веб-платформы за последнее время.

Уже достаточно давно существует потребность в языке, который стал бы фундаментом для веб-приложений и приблизил их по производительности к нативным. Уже существовавшие JavaScript, Adobe Flash, Java, Silverlight имеют свои недостатки из списка: ограничения выбором операционной системы, необходимость серьёзного вмешательства в архитектуру браузера или подключения плагинов и т.д.

Концепция стандарта заключается в разработке универсального языка-посредника для создания веб-приложений, своеобразного «веб-ассемблера». При этом он должен будет избавить JavaScript, самый идеальный из уже разработанных вариантов, от задач, для которых он не предназначен или справляется с большими потерями в производительности. В WebAssembly будут переводиться сложные программы с высокоуровневых языков. Таким образом появится возможность писать веб-приложения практически на любых языках, и преобразовывать их в эффективный низкоуровневый байт-код wasm для выполнения в браузере, в последствии чего средняя эффективность таких приложений, будет значительно выше широко используемых на сегодняшний день аналогов.

Уже сегодня есть полноценно работающие приложения демонстрирующие данную технологию. Например, экспортированная в WebAssembly создателями стандарта в демонстрационных целях игра Tanks! (https://webassembly.org/demo/)

Вывод

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

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

Пьюривал С. Основы разработки веб-приложений. — СПб.: Питер, 2015. — 272 с.: ил. — (Серия «Бестселлеры O’Reilly»).

Симпсон К. ES6 и не только. — СПб.: Питер, 2017. — 336 с.: ил. — (Серия «Бестселлеры O’Reilly»).

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

Электронный ресурс: https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts

Электронный ресурс: https://webassembly.org/

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