Preview

Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS)

Advanced search

A declarative language FlexT for analysis and documenting of binary data formats

https://doi.org/10.15514/ISPRAS-2016-28(5)-15

Abstract

The language FlexT (Flexible Types) is intended for specification of binary data formats. The language is declarative and designed to be well understood for human readers. Its main elements are the data type declarations, which look very much like the usual type declarations of the imperative programming languages, but are more flexible. In the article we first give a review of the capabilities of the modern projects oriented to specification of binary file formats. Then we consider the main features of the FlexT language and, in particular, the features that help to describe the formats of encoding of machine instructions. Finally we briefly describe the software developed, which is based upon the FlexT interpreter and some new capabilities of information search, which makes possible the use of the specifications.

About the Authors

A. Y. Hmelnov
Matrosov Institute for System Dynamics and Control Theory of the Siberian Branch of the Russian Academy of Sciences
Russian Federation


I. V. Bychkov
Matrosov Institute for System Dynamics and Control Theory of the Siberian Branch of the Russian Academy of Sciences
Russian Federation


A. A. Mikhailov
Matrosov Institute for System Dynamics and Control Theory of the Siberian Branch of the Russian Academy of Sciences
Russian Federation


References

1. Faase F.J. BFF: A grammar for Binary File Formats. http://www.iwriteiam.nl/Ha_BFF.html

2. Data Format Description Language (DFDL). https://www.ogf.org/ogf/doku.php/standards/dfdl/dfdl

3. IBM Knowledge Center. Data Format Description Language (DFDL). http://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/df20060_.htm

4. IBM Integration Bus. http://www-03.ibm.com/software/products/en/ibm-integration-bus/

5. Daffodil: Open Source DFDL. https://opensource.ncsa.illinois.edu/confluence/display/DFDL

6. IBM Knowledge Center. Unsupported features. http://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/df00150_.htm

7. WebLogic Integration 7.0. Building Format Definitions. https://docs.oracle.com/cd/E13214_01/wli/docs70/diuser/fmtdef.htm

8. NetPDL Language Specification. http://www.nbee.org/doku.php?id=netpdl:index

9. BinPAC. https://www.bro.org/sphinx/components/binpac/README.html

10. The data description language EAST specification (CCSD0010). http://mtc-m16c.sid.inpe.br/col/sid.inpe.br/mtc-m18@80/2009/07.21.13.31/doc/CCSDS%20644.0-B-2.pdf

11. Calder B.R., Masetti G. Huddler: a multi-language compiler for automatically generated format-specific data drivers. U.S. Hydrographic Conference (US HYDRO) 2015 Available at URL: http://www.hypack.com/ushydro/2015/papers/pdf/Calder_Huddler_for_automatic_data_drivers.pdf

12. Georgia Tech Research Institute. Digital Archives Research. http://perpos.gtri.gatech.edu/

13. Underwood W. Grammar-Based Specification and Parsing of Binary File Formats. The International Journal of Digital Curation Vol. 7, No. 1, 2012, pp. 95-106 Available at URL: http://www.ijdc.net/index.php/ijdc/article/viewFile/207/276

14. Parr T. ANTLR (ANother Tool for Language Recognition). http://www.antlr.org/

15. Godmar Back. 2002. DataScript - A Specification and Scripting Language for Binary Data. In Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering (GPCE '02), Don S. Batory, Charles Consel, and Walid Taha (Eds.). Springer-Verlag, London, UK, UK, 66-77.

16. DataScript. http://datascript.sourceforge.net/

17. Binary data definition language. http://www.binarydom.com/sdk/doc/bddl.shtml

18. Binopedia. http://binopedia.org/

19. Kaitai Struct. http://kaitai.io/

20. Synalyze It!. https://www.synalysis.net/

21. Hexinator. https://hexinator.com/hexinator-windows/

22. Synalyze It! The Grammar Page. https://www.synalysis.net/formats.xml

23. B. Liskov, J. Guttag, Abstraction and Specification in Program Development, The MIT Press, 1986.

24. Field A.J., Harrison P.G. Functional Programming, Addison-Wesley, Wokingham, UK, 1988

25. Ramsey N., Fernandez M.F. 1995. The New Jersey machine-code toolkit. In Proceedings of the USENIX 1995 Technical Conference Proceedings (TCON'95). USENIX Association, Berkeley, CA, USA, 24-24.

26. Ramsey N., Fernandez M.F. The New Jersey Machine-Code Toolkit. http://www.cs.tufts.edu/~nr/toolkit/

27. Hmelnov A.Y. The home page of FlexT. http://hmelnov.icc.ru/FlexT/


Review

For citations:


Hmelnov A.Y., Bychkov I.V., Mikhailov A.A. A declarative language FlexT for analysis and documenting of binary data formats. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2016;28(5):239-268. (In Russ.) https://doi.org/10.15514/ISPRAS-2016-28(5)-15



Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)