Dev ›
1С+Компилятор. Анонс. Что бы откомпилировать??? ›
#1
22.09.17 22:09
Доброго времени суток.
Этот материал изначально готовился как публикация, но модератор сказал идти с ним на форум. Полностью почитать с картинками можно скачав файл. Здесь выжимки.
Разрабатывается компилятор языка 1С в машинные коды. Компилятор разрабатывается на на основе LLVM\Clang компилятора С++. В результате компиляции получается DLL-файл наитивной компоненты для 1С, которую можно подключать обычным способом. Из компоненты допустимо вызывать все методы свойства платформы (*), все экспортируемые методы модулей конфигурации и глобального контекста и все допустимые объекты. Везде где можно используются родные механизмы платформы, а где они не доступны функциональность реализована идентично функциональности платформы(**). Т.е. можно взять практически любой код из конфигуратора, откомпилировать в компоненту и подключить в откомпилированном виде. Компилятор реализован в монолитном виде и никакая «специфика» работы с платформой не раскрывается.
Компилятор находится на финальной стадии разработки и в скором времени будет опубликован. В базовой функциональности он будет бесплатен и свободен для использования в целях ознакомления и обучения. Особое внимание в этот раз я хочу уделить демонстрационному примеру использования компилятора. В своей прошлой статье об ООП для 1С я его выбрал неудачно, что вызвало массу нареканий. Здесь я хотел бы сначала посоветоваться с сообществом и уже потом публиковать релиз. Конечно, сразу возникают мысли откомпилировать целиком какую-нибудь типовую конфигурацию или хотя бы сделать БСП.dll, но это слишком масштабно для примера. Также я очень благодарен MAGAZKA за предложение откомпилировать ее всю сверху донизу и пренепременно этим займусь, но все таки сразу после того как у меня заработает демонстрационный пример.
Что откомпилировать не такой простой вопрос. Кода должно быть все-таки относительно немного и на нем можно было бы демонстрировать производительность. Он должен быть достаточно разносторонним, а не только математика. Он должен иметь какую-то практическую пользу дабы люди его реально запускали и жаловались мне если что не так. Увы, но реализовать 1000++ юнит тестов для компилятора я не в состоянии. Также нужно учесть, что компилируются общие модули, а не модули объектов. Вернее откомпилировать-то можно, но подключить компоненту объекту виде модуля легальными средствами 1С нельзя. Также глобальный модуль после компиляции сам собой легально не станет глобальным.
Буду очень благодарен за идеи и помощь.
Очень большая просьба перед тем как задать вопрос почитать статью. Очень!
НИКАКИХ КОММЕНТАРИЕВ ПО ВНУТРЕННЕМУ УСТРОЙСТВУ ПЛАТФОРМЫ Я НЕ ДАЮ.
Прикрепленные файлы:
1C + Компилятор. Достигнутое и перспективы.docx