/
🗜️
Tact (язык программирования)
Search
Try Notion
🗜️🗜️
Tact (язык программирования)
Официальный сайт: https://tact-lang.org
Раздел на форуме tonpie.io [скоро]
Tact — совсем новый проект. Он еще не полностью разработан и готов пока к использованию только на свой страх и риск . Мы объявляем об этом заранее, чтобы собирать отзывы и постепенно делать их полезными для разработчиков
О языке
Что такое Tact
Tact — это новый язык программирования для смарт-контрактов блокчейна TON, который прост в использовании и имеет знакомый синтаксис , строгую систему типов , контроль газа и композицию типов с нулевыми накладными расходами, что позволяет разработчикам создавать сложные системы смарт-контрактов с проверенными затратами на выполнение.
Знакомый синтаксис
Tact предлагает знакомый синтаксис, вдохновленный JavaScript, Rust и Swift. Мощные функции, такие как алгебраические типы данных и выполнение во время компиляции, выглядят органично и удобно для новых разработчиков.
JavaScript
Copy
fn hello(recipient: Address) { recipient.send(Message.new("hello, world!")); }
Сильная система типов
Tact предлагает алгебраические типы данных, совместимые со схемой TL-B. Арифметика всегда безопасна, потому что целые числа имеют точные границы. Компилятор Tact помогает выполнять необходимые проверки и не приводит к скрытым сбоям или неожиданному усечению.
JavaScript
Copy
struct Wallet { val seqno: Int(32); val pubkey: PublicKey; val plugins: List(Plugin); }
Актер-ориентированный
Tact разработан специально для актерской модели TON. Строго типизированные сообщения обеспечивают соблюдение коммуникационных контрактов между субъектами.
JavaScript
Copy
interface Ping { fn ping(sender: Pong, msg: PingMessage); }
Газ-контроль
Блокчейн-программы имеют строгую модель стоимости исполнения. Каждая операция должна быть оплачена в режиме реального времени, и выполнение может завершиться неудачей на полпути, если закончится газ.
Tact делает кросс-контрактные сообщения безопасными благодаря точным обязательствам по газу и проверкам компилятором затрат на выполнение. Переменные затраты либо статически ограничены, либо явно проверяются во время выполнения.
Композиция с нулевыми накладными расходами
Tact запускает вашу программу дважды. Первый запуск — это выполнение во время компиляции, которое позволяет свободно комбинировать типы и интерфейсы для точного выражения инвариантов программы. Затем типы проверяются компилятором. Полученный в результате код Fift или FunC не требует дополнительных затрат времени выполнения.
Эта модель предлагает единый унифицированный язык с первоклассными типами и позволяет избежать ловушки отдельных мини-языков для границ типов и макросов.
Tact и FunC
FunC — это язык более низкого уровня, предназначенный для разработчиков, хорошо знакомых с архитектурой TON. FunC освобождает разработчиков от написания необработанного кода Fift, обеспечивая при этом тот же уровень контроля. К сожалению, точность FunC затрудняет написание сложных мультиконтрактных систем.
Tact позволяет разработчикам пойти еще дальше: вы можете писать целые наборы смарт-контрактов со строго типизированными интерфейсами и статически проверенными затратами на выполнение. С Tact вы можете сосредоточиться на своей проблеме и меньше беспокоиться об особенностях блокчейна.
Обучение
Чаты и сообщества:
Официальный чат (EN) https://t.me/tactlang
Неофициальный чат (RU) https://t.me/tactlang_ru
Статьи