Хмельнов А.Е.  

Генерация кода для чтения данных по спецификациям форматов файлов на языке FlexT

Декларативный язык FlexT разработан для описания форматов бинарных данных. Основными конструкциями языка являются определения различных типов. После описания типов данных определяются переменные, т.е. указываются адреса (смещения), по которым такие данные размещаются в файле. Некоторые элементы данных (переменные) могут содержать ссылки (указатели) на другие элементы данных. Алгоритм разбора содержимого файла анализирует такие ссылки, в результате чего в файле обнаруживаются структуры данных, доступные по цепочкам ссылок из явно обозначенных переменных. Спецификации на FlexT применяются для разбора содержимого бинарных данных - представления этих данных в понятном человеку виде. Для этих целей разработано несколько программ, в которых используются спецификации на языке FlexT. В работе рассматривается задача расширения области применения языка FlexT за счёт реализации алгоритмов для автоматической генерации кода чтения данных по спецификациям форматов файлов. Для этих целей разработан алгоритм генерации и архитектура генерируемого кода, которые позволяют эффективно воспроизвести в коде на традиционном языке программирования (Object Pascal) такие возможности языка FlexT, как изменение порядка байт, битовые типы данных, динамические составляющие сложных типов данных, параметризация типов данных и т.д.


To reports list