Добро пожаловать на сайт проекта TrustLang!

TrustLang — это язык программирования высокого уровня общего назначения c синтаксисом на основе грамматических правил без использования ключевых слов что позволяет создать любые варинты собственного синтаксиса (DSL).

TrustLang реализован как транспилер (source-to-source translator) в код C++ и совместим ним на низком уровне, разрешая непосредственные вставки кода на языке С++ в тексте программы, прямые вызовы С/С++ функций и наоборот, вызовы функции TrustLang из С++.

В языке TrustLang на уровне синтаксиса языка реализована вытесняющая и кооперативная многозадачность (т.е. многопоточное и асинхронное программирование).

Тензорные вычисления и рациональные числа не ограниченной точности реализованы как базовые типы данных и поддерживаются синтаксисом языка без подключения дополнительных библиотек. Тензорные вычисления сделаны на базе библиотеки libtorch, а рациональные числа неограниченной точности с помощью OpenSSL.

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

Основные свойства и особенности языка:


*) Данные возможности запланированы к реализации

Зачем нужен TrustLang?

У всех современных языков программирования происходит постоянное развитие (усложнение) синтаксиса по мере выхода новых версий.
Это является своего рода платой за появление новых возможностей языка и воспринимается пользователями как естественное явление.

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

Еще одним следствием этого процесса становится постоянное увеличение сложности разработки и поддержки уже созданных программных продуктов, когда старый программный код дорабатывается с применением уже новых стандартов и постоянным увеличением старого легаси кода.

TrustLang разработан как "надстройка" над языком C++ с сохранением всех его возможностей и характеристик, но лишенный его недостатков в виде очень сложной лексики, адресной арифметики, ручного управления памятью и ограниченностью встроенных типов данных.

Тензорные вычисления и рациональные числа неограниченной точности доступны «из коробки» и поддерживаются на уровне синтаксиса для удобной записи литералов. Тензорные вычисления сделаны на базе библиотеки libtorch, а рациональные числа неограниченной точности с помощью OpenSSL.

Пример скрипта Hello world! на TrustLang


    hello(str:StrChar) := {
        @print('call: {}\n', str);
        str;
    };

    @main() := {
        hello('Привет, мир!');
    };
    
Вывод:
    call: Привет, мир!
    Привет, мир!
    

Пример вычисления факториала 40 на TrustLang с использованием DSL синтаксиса


    #!../_build/trust --run

    @main() := {

        $fact := 1\1; # Рациональное число 1 (без ограничения точности)
        $mult := 1;

        @while( mult <= 40 ) {
            fact *= mult;
            mult += 1;
        };

        # Print result
        @print('{}', fact);
    }

    
Вывод:
    815915283247897734345611269596115894272000000000\1