Отличия языков программирования Sol и Solidity

Для реализации смартконтрактов используется язык программирования Sol являющийся подмножеством языка Solidity. Solidity молодой высокоуровневый, объекто-ориентированный язык программирования использующийся исключительно для программирования смарт-контрактов в среде Ethereum. Для его компиляции используется Ethereum Virtual Machine.

Язык программирования Solidity имеет JavaScript-подобный синтаксис, но он был специально разработан для компиляции в байт-код для виртуальной машины Ethereum. EVM запускает код, который полностью детерминирован; одинаковые алгоритмы с одинаковыми входными данными всегда будут давать одинаковые результаты

Основные элементы синтаксиса языка программирования Solidity:

Contracts. Контракты заменяют традиционные классы в других языках программирования — они имеют конструкторы, могут наследовать от других классы и имеют свои собственные функции.

Отличия языков программирования Sol и Solidity
Фрагмент кода смарт-контракта

Is Interface — обозначает, что Контракт наследуется от Интерфейса. Мы часто будем использовать это для наследования от стандартов токенов Ethereum, наиболее распространенным из которых является ERC20. ERC20 содержит базовую функциональность для создания токена в сети Ethereum.

Контракты, которые наследуются от других контрактов, могут получать доступ к любым компонентам родительского контракта (переменные состояния, модификаторы, функции), помеченные как приватные или публичные. Контракты могут также переопределять компоненты их родительского контракта [18].

Events – используется для работы с утилитой логгирования «logging» блокчейна Ethereum. Каждый блок имеет свой лог работы, и когда события генерируются в контракте, событие регистрируется в блокчейне. Пример использования Event продемонстрирован во фрагменте кода на рисунке 5.

Отличия языков программирования Sol и Solidity
Фрагмент кода с примером Event

Типы данных используемые в Solidity:

  • Целочисленные типы без знака размеров байтов — uint8, uint16, uint34, uint64, uint128, uint256(uint);
  • Целочисленные типы со знаком различных размеров байтов: int8, int16, int32, int64, int128, int256(uint).

Язык программирования Solidity считается статически типизированным. Он поддерживает наследование, библиотеки и сложные пользовательские типы, помимо прочих особенностей. Аккуратное использование типов может помочь программистам понять, как их программы будут выполняться.

Получите скидку на торговую комиссию в 10% на бирже Binance по коду «CRYPTOSLIVA» или по регистрации по этой ссылке

Выбирают язык программирования Sol по причине его пригодности для упрощения процедуры проверки смарт-контрактов, при этом достаточности для реализации нетривиальной бизнес логики. Сам язык программирования Solidity имеет схожий синтаксис с JavaScript. Отличия языка программирования Sol от Solidity представлены в таблице 1.

Отличие Sol Solidity
Циклы for, do/while, рекурсия, взаимные вызовы функций +
Механизмы динамического создания и удаления объектов через new и delete +
Поддержка только статических массивов +
Использование var +
Использование более 1 contract в коде +
Более 4 аргументов в событии +
Address задается конечным множеством уникальных идентификаторов +
Возможность вызова методов других контрактов +

Эксперт и главный редактор портала CRYPTOSLIVA. Участник конференций посвященных финтеху и криптовалютам в частности. Магистр в области информационной безопасности.

Оцените автора
( 1 оценка, среднее 1 из 5 )
Инсайды и сигналы криптовалют в режиме онлайн
Добавить комментарий