Язык описания данных FlexT: использование динамических типов для описания статических данных.

Рассматривается задача спецификации форматов данных, которая является составной частью задачи спецификации программных систем. Вводится понятие спецификации интерпретации данных, как более простой подзадачи при спецификации формата данных, и понятие идентификации типов данных, как базовой интерпретации данных.

Для описания идентификации типов данных вводится язык гибких типов FlexT (Flexible Types), в котором за счёт достаточно простого расширения традиционного для процедурных языков программирования набора типов достигается удобство его применения в рассматриваемой задаче.

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

Машинный код также можно рассматривать, как особый тип данных. Язык FlexT был успешно использован для описания кодирования машинной команды, Предлагаемый подход может применяться в задачах дизассемблирования и декомпиляции: для спецификации форматов файлов, содержащих исполняемый код, форматов машинных команд, а также используемых в рассматриваемой программе типов данных.