Новости и события » Hi-Tech » Bloomberg представил оптимизирующий компилятор BuckleScript

Bloomberg представил оптимизирующий компилятор BuckleScript

Компания Bloomberg опубликовала первый стабильный релиз проекта BuckleScript, в рамках которого подготовлен компилятор проектов на языке OCaml в представление на JavaScript. BuckleScript позиционируется как альтернатива таким системам, как TypeScript, дающая возможность разрабатывать web-проекты с использованием статической типизации. BuckleScript позволяет организовать бесшовное использование кода OCaml в JavaScript, сохраняя имена переменных и генерируя читаемый код. Исходные тексты проекта написаны на языке OCaml и распространяются под лицензией GPLv2.

В отличие от TypeScript в BuckleScript предоставляется полноценная система типов, без нагромождения кода аннотациями. Корректность использования типов проверяется на этапе компиляции, что гарантирует отсутствие связанных некорректным использованием типов ошибок во время выполнения проекта. Информация о типах также позволяет задействовать в BuckleScript большое число оптимизаций, выполняемых на этапе компиляции, таких как свертывание констант, удаление мертвого кода (DCE) и оптимизация хвостовой рекурсии (TCO).

Из достоинств BuckleScript также отмечается возможность применения в проектах уже существующего языка OCaml, без необходимости изучения нового языка программирования. Написанный на OCaml код может применяться не только для преобразования в JavaScript, но и собираться в виде нативных исполняемых файлов или в форме самодостаточных unikernel, работающих поверх гипервизора. Компилируемые модули OCaml отражаются в модули JavaScript. Применение интерфейса FFI (Foreign Function Interface) позволяет моделировать в программах на OCaml родную систему объектов JavaScript и использовать в проектах существующие библиотеки JavaScript.

Для управления генерацией кода можно применять специальные атрибуты OCaml. Обеспечивается достаточно высокая скорость компиляции, например, по сравнению с TypeScript проект собирается как минимум в десять раз быстрее. Компилятор может быть собран в виде нативного исполняемого файла или в представлении на JavaScript, при этом вариант на JavaScript также обладает отличной производительностью и позволяет на лету компилировать проекты, практически в режиме реального времени.


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх