Compilers are commonly divided into "front-end" - concerned with the language itself and its syntax, and "back end" - concerned with code-generation.
Sometimes back-ends are language independent as in the same compiler back-end can be shared using front-ends for different languages (C and Pascal for example). The term "middle end" also comes up to mean the part that is neither front-end nor back-end, specific. In our case there are numerous optimizations we do inside Daffodil that are back-end independent. I suppose they're still DFDL-specific, but as they're not specifically concerned with the dialect/syntax of the DFDL language we distinguish them somewhat. These operate on the same grammar objects as the backends, but do their work in a backend-independent manner. ________________________________ From: Steinberger, Rick <rsteinber...@owlcyberdefense.com> Sent: Monday, October 5, 2020 10:46 AM To: dev@daffodil.apache.org <dev@daffodil.apache.org> Subject: RE: Subproject names proposed for discussion What does the notation 'backend' refer to? -----Original Message----- From: Interrante, John A (GE Research, US) <inter...@research.ge.com> Sent: Monday, October 5, 2020 9:29 AM To: dev@daffodil.apache.org Subject: Subproject names proposed for discussion Steve Lawrence and I would like to bring a topic to the dev list for discussion since not everyone is paying attention to the review of my runtime2 push request. Steve suggested, and I agree, that renaming some of the Daffodil subprojects might make their meanings more obvious to newcomer devs. If we do rename some subprojects after discussing it on this list, we will do it immediately in its own pull request since mixing changes with renames makes it difficult to see which changes are just renames instead of actual changes. What do devs think about us renaming some subprojects like this? rename daffodil-core to daffodil-schema-compiler leave daffodil-lib alone rename daffodil-runtime1 to daffodil-backend-parser-scala rename daffodil-runtime1-unparser to daffodil-backend-unparser-scala rename daffodil-runtime2 to daffodil-backend-generator-c