Generation of code for reading data from the declarative file format specifications written in language FlexT

被引:2
作者
Hmelnov, Alexei [1 ]
Mikhailov, Andrei [1 ]
机构
[1] Russian Acad Sci, Siberian Branch, Matrosov Inst Syst Dynam & Control Theory, Lab Complex Informat Syst, Irkutsk, Russia
来源
2018 IVANNIKOV ISPRAS OPEN CONFERENCE (ISPRAS) | 2018年
基金
俄罗斯基础研究基金会;
关键词
specifications of binary data formats; declarative language; code generation; data reader;
D O I
10.1109/ISPRAS.2018.00011
中图分类号
TM [电工技术]; TN [电子技术、通信技术];
学科分类号
0808 ; 0809 ;
摘要
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. While the primary purpose of the language FlexT development was to make the binary data understandable by displaying them according to the format specifications, recently we have implemented the code generator, which can produce data reading code in some imperative languages from the specifications. By now we have implemented the code generation for the most widely used FlexT data types, but some complex types like that used in specifications of machine instructions' encoding are not supported yet. The current capabilities of the code generator are well characterized by that it have successfully produced a full-featured data reader code for the well-known for the GIS community Shape file format. In the article we first give a review of the features of the modern projects oriented to specification of binary file formats and consider their code generation capabilities. Then we briefly review the main features of the FlexT language. Finally we describe the main approaches that we use for the code generation.
引用
收藏
页码:23 / 30
页数:8
相关论文
共 7 条
[1]  
[Anonymous], 1986, Abstraction and Specification in Program Development
[2]  
Back G, 2002, LECT NOTES COMPUT SC, V2487, P66
[3]  
[Хмельнов А.Е. Hmelnov A.Y.], 2016, [Труды Института системного программирования РАН, Trudy Instituta sistemnogo programmirovaniya RAN], V28, P239, DOI 10.15514/ISPRAS-2016-28(5)-15
[4]  
Masetti G, 2015, US HYDR C US HYDRO 2
[5]   NetPDL: An extensible XML-based language for packet header description [J].
Risso, F ;
Baldi, M .
COMPUTER NETWORKS, 2006, 50 (05) :688-706
[6]  
Underwood William, 2012, International Journal of Digital Curation, V7, P95, DOI DOI 10.2218/IJDC.V7I1.217
[7]  
2008, 2008 IEEE INTERNATIO, P5849, DOI DOI 10.1109/ICC.2008.1094