Хонгбо Жанг (Hongbo Zhang), главен разработчик на езика за програмиране

...
Хонгбо Жанг (Hongbo Zhang), главен разработчик на езика за програмиране
Коментари Харесай

Представен е програмният език Moonbit специално оптимизиран за WebAssembly

Хонгбо Жанг (Hongbo Zhang), основен разработчик на езика за програмиране ReScript, който е съдействал и за OCaml и Flow, показа Moonbit – нов език за програмиране, особено усъвършенстван за основаване на приложения, които се компилират в универсалния междинния код на WebAssembly. Като съществени цели на създаването са посочени обезпечаването на елементарен синтаксис, висока скорост на компилиране и генериране на стилен и извънредно бърз промеждутъчен WebAssembly код. Осигурени са няколко помощни средства за генериране на кода, в това число помощни средства за JavaScript и на нативен код.

Необходимостта от нов език се дължи на обстоятелството, че създаването на приложения за WebAssembly на езици от ниско равнище като C++ и Rust е мъчно за научаване и забавя създаването заради дългото време за компилиране. Езиците от високо равнище като Go са по-лесни за проучване и писане на стратегии, само че изостават във връзка с успеваемостта и компактността на получения код. Разработчиците на Moonbit са се пробвали да съчетаят най-хубавите аспекти на езиците от ниско и високо равнище в подтекста на потреблението им с технологията WebAssembly.

За да реализира висока продуктивност на осъществяване, компилаторът Moonbit употребява MLIR Multi-Level Intermediate Representation (MLIR), което дава спомагателни благоприятни условия за оптимизации, отчитащи графиките на потоците на ръководство и на данните, както и за по-ефективно потребление кеша на процесора. Използването на MLIR дава опция за усъвършенстване и унищожаване на непотребните структури на по-високо равнище, като се взема поради структурата на цялата стратегия като цяло, а не на обособените ѝ модули.

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

Езикът поддържа няколко парадигми за програмиране, в това число детайли на обектно-ориентираното и функционалното програмиране, дава елементарна система от видове и осъществя архитектура, насочена към данните. Синтаксисът на Moonbit е създаден предвид на простотата на Go и някои от усъвършенстваните характерности на Rust, като да вземем за пример поддръжката на сравнение на шаблони, извеждането на видовете, генериците и профилирания полиморфизъм (сходство на типовете). В Moonbit, сходно на Go е осъществено автоматизирано ръководство на паметта и има рекурсивни затваряния, с цел да опрости създаването. За разлика от Go, Moonbit изначално не поддържа евентуално рискови детайли като да вземем за пример указателите.

В рамките на плана се създава пълноценна платформа за разработка, включваща компилатор, набор от принадлежности за сглобяване, управител на пакети и интегрирана среда за разработка, налична посредством уеб браузър (поддържа се пускане както в облака, по този начин и офлайн). Предлага се и плъгин за редактора на код VSCode. Понастоящем планът е в начален стадий на алфа тестване, при който са налични единствено бинарни компилатори за създаване и онлайн среда за изпробване. Заявено е, че изходният код на компилатора и инструментите, създадени от плана, ще бъде отворен откакто бъде подготвена първата бета-версия, която се чака да бъде пусната в средата на идната година.

Източник: kaldata.com

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР