I've just submitted a pull request to add a new runtime2 backend with a C code 
generator to Daffodil.  Mike Beckerle and I have paired together on some of the 
key changes in this pull request, although we've implemented only enough 
functionality to serve as a start for discussion and collaboration.

Our motivation is to give developers the ability to write a DFDL schema for 
binary data and generate C code which will parse and unparse binary data 
according to the DFDL schema.  This will allow DFDL schemas to be used in 
embedded devices (even FPGA chips) that have too little memory or power to run 
Apache Daffodil itself.  Our FPGA programming constraints are 1) make the C 
code use only statically allocated memory if possible; 2) make the C code as 
secure as possible.

Right now you can write a DFDL schema and generate C code which will parse and 
unparse 32-bit big-endian byte-aligned binary integers according to your DFDL 
schema.  We have taken only a baby step toward implementing a smallest possible 
conforming subset of DFDL as described in the "Runtime 2 Design" table of 
https://cwiki.apache.org/confluence/display/DAFFODIL/WIP%3A+Daffodil+Runtime+2.

I'd like to invite the Daffodil developer community to examine the work done so 
far in https://github.com/apache/incubator-daffodil/pull/422 and contribute to 
a discussion or collaborate with us on building out the runtime2 backend.

Thanks!
John

John Interrante
Sr Software Engineer, Industrial AI
GE Global Research

Building a world that works

Reply via email to