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