Страницы

Показаны сообщения с ярлыком c++. Показать все сообщения
Показаны сообщения с ярлыком c++. Показать все сообщения

вторник, 4 января 2022 г.

Перевод на другие языки в песочнице

Песочница пополнилась возможностью вызывать транcляцию в доступные языки, то есть, С, Java, JavaScript. В выводе кода акцент смещён на читаемость, поэтому для неё транслятор вызывается с опциями, минизирующими создание дополнительного кода, необходимого для повышения диагностики ошибок или воплощения необычных режимов исполнения.

Заодно с добавлением команд трансляции на сайт песочницы были добавлены новые примеры кода.

среда, 26 июня 2019 г.

Связка с кодом на других высокоуровневых языках

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

В трансляторе "Востока" сейчас применён более простой модульный подход. Входной язык не содержит никаких расширений, а для связывания используется подмена кода на входном языке на код на выходном языке. То есть, интерфейсный модуль на Обероне с, возможно, пустыми типами и процедурами во время полной трансляции заменяется соответствующим файлом-"модулем" на С, Java или JavaScript, заполненным нужным функционалом.

воскресенье, 13 ноября 2016 г.

Скорость пузырьковой сортировки на Oberon, C++, Go, Rust

Воспользовавшись тестом на производительность с форума oberspace, реализованного для разных языков, проверил свой транслятор. Тест представляет собой написанную в лоб пузырьковую сортировку.

Одним из преимуществ использования транслятора Оберона перед непосредственным написанием кода на C/C++ является лёгкая возможность добавления проверок границ массива и использования неинициализированных переменных. Современные компиляторы Си тоже не так просты и позволяют добавлять некоторые проверки (-fsanitize), впрочем, рассматриваемые авторами больше как отладочная возможность. Сравним эти возможности.

Расширение командного режима

Расширены возможности кода Oberon-команд в трансляторе Восток. Эти возможности являются альтернативой частным и в то же время однообразным р...