Лена Код представляет собой платформу анализа кода на основе детерминированного конвейера. Понимайте, улучшайте и преобразовывайте свой код на 30 языках. Explain и Review помогают разобраться в коде и провести ревью на его исходном языке. Convert преобразует код на выбранный язык.
Для преобразования вставьте код в редактор исходника, выберите доступный целевой язык и просмотрите код в редакторе результата.
Перед началом проверьте, какие языки доступны в рабочем пространстве. Если среди них есть Топаз, следуйте шагам ниже, чтобы проверить исходник или результат на Топазе.
Установите Топаз для проверки и запуска полученных файлов .tpz. Для нативной сборки также нужны инструменты сборки Rust.
Генерация и детерминированная проверка
Техническая основа Лены Код включает собственный диалект Лиспа Lena и Facet IR, промежуточное структурное представление кода. Команда разработала инструменты анализа и преобразования кода, интерпретаторы и корпус проверок. Эти технологии лежат в основе анализа, генерации и преобразования кода, а также детерминированной проверки результатов.
Подготовьте преобразование
Сохраните исходный код, входные данные и ожидаемые результаты вместе с преобразованным кодом. Прежде чем использовать результат в приложении, проверьте изменения API, представления данных, побочных эффектов и обработки ошибок.
Проверьте полученный код Топаза
Сохраните преобразованный код как converted.tpz. Перед запуском просмотрите содержимое и изменения. Выполните следующие команды по порядку из папки с этим файлом. При ошибке остановитесь.
topaz parse converted.tpz
topaz check converted.tpz
topaz run converted.tpz
topaz build converted.tpz --out-dir converted-build --run| Команда | Что проверить |
|---|---|
parse | Код завершения 0 означает успешный синтаксический анализ |
check | Код завершения 0 означает успешную проверку имён и типов |
run | Сравните вывод и код завершения программы с оригиналом |
build --run | Проверьте результат сборки в converted-build и поведение собранной программы |
Если анализ или проверка завершается ошибкой, исправьте указанное место в converted.tpz согласно текущему синтаксису. Если выполнение даёт другой результат, подайте обеим программам одинаковые данные и изучите изменённую логику.
Сравните важные для приложения результаты, ошибки, изменения данных, вызовы API и обработку сбоев. Успешная проверка исходника не проверяет эти результаты. Изучите файловые и сетевые операции, прежде чем разрешить доступ к реальным данным.
Преобразуйте Топаз в другой язык
Лена Код задаёт правила переноса конструкций Топаза в целевой язык и среду выполнения. Проверьте полученные API, представление данных, внешние действия и обработку ошибок. Выполните тесты средствами целевого языка и сравните результаты с сохранёнными.
Подключите результат
Продукты обмениваются исходными файлами. Отдельно настройте пакеты, среду выполнения и файлы развёртывания целевого языка. При соединении скомпилированных компонентов проверьте ABI, правила передачи аргументов и результатов.
Помечайте примеры на других языках названием языка. Файлы .tpz используют синтаксис Топаза, а topaz check отклоняет неподдерживаемые формы.