Русский
Русский
English
Статистика
Реклама

Mash lang

Язык программирования Mash

25.06.2020 02:19:01 | Автор: admin

http://mash-project.org
https://github.com/RoPi0n/mash-lang

Mash?


Это язык императивный язык программирования с динамической типизацией, сборкой мусора, ООП и поддержкой многопоточности.

Интересно? Тогда под кат! :)


Насколько завершен проект?



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

По функционалу Mash схож с Python.
Язык спроектирован максимально простым и полнофункциональным.
Полностью поддерживает ООП, интроспекцию, рефлексию, функции высшего порядка, многопоточность, синхронизацию, распараллеливание и синхронизацию кода внутри тела методов.

В качестве среды выполнения языка используется стековая виртуальная машина (ВМ), поддерживающая многопоточность, сборку мусора (Reference Counting).
Реализован транслятор языка (с построением AST, все как по книжкам) в абстрактный код для ВМ и в перспективе в другие языки (но из-за сложности языка это пока только планы на будущее).
Для удобства в ознакомлении с языком и работе с ним реализована небольшая IDE (FPC + SynEdit).

Встраиваемость


ВМ языка имеет API, функционал языка можно расширять путем написания библиотек для ВМ на любом нативном языке (FPC, Delphi, C/C++, Rust и т.д.),
также язык можно встроить в любой ваш проект, при этом получить в свое распоряжение весь функционал Mash'a и его нативных библиотек.

Debug?


У ВМ предусмотрена возможность работы в связке с отладчиком (который пока что очень сырой).
Язык поддерживает трассировку исключений.


Поддержка платформ


Язык полностью написан на Free Pascal, который в свою очередь поддерживает огромный список платформ, под которые может быть собран Mash.
Зависимости от каких-либо библиотек отсутствуют.

Проект уже собирал ранее и тестировал на Windows, Linux и Android.

На что Mash способен уже сейчас?


На данный момент я работаю над реализацией стандартного набора библиотек для работы с файлами, математикой, I/O, многопоточностью, GUI, сетью, базами данных, криптографией и т.д.


В репозитории проекта (и в Pre-Release сборке) можно найти небольшие демо-приложения.
На Mash написана змейка, асинхронный веб сервер/фреймворк (по типу Flask'a), отрисовка графиков в декартовой и полярных системах координат, Аттрактор Лоренца, вращение простых 3D моделек по типу кубика, а так же версия транслятора Mash'a, написанная на Mash'e.

Что дальше?


Над проектом работаю пока один в рамках хобби, так что его будущее все ещё остается не определенным (+вуз, +разные неопределенные сложности и релиз может отложиться на долго).
В данной статье представлен промежуточный результат работы, все ещё далекий от конечной цели.
В разработке, помимо библиотек для ВМ, находится JIT компилятор по типу HotSpot.

Дочитали до конца?


Спасибо за внимание :)
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru