Software Lab Program Transformation

We consider source to source transformation as a generic technique in Computer Science. A given / new domain specific language (DSL) is supposed to be translated into a general purpose programming language (GPPL) such as Java or C++ by a DSL2GPPL transformation software. Some additional analyisis / transformation which is not present within the DSL level shall be provided at the GPPL level. The result shall be transformed back into the DSL. We aim for rigorous requirements analysis, object-oriented design and implementation, tests and documentation during the development of the source to source transformation software.

General Information

... on the administrative structure of the lab can be found here.

Topics

  1. dot2GPPL
    • transformation of sparse matrices from the SuiteSparse sparse matrix collection to undirected graphs / bipartite graphs in dot format
    • transformation of the undirected graphs / bipartite graphs from dot format into a GPPL (e.g. Java) data structure
    • different coloring methods applied to the GPPL graph
    • visualization of the results by unparsing of the GPPL graph back to dot and sparse matrix formats
  2. LaTeX2GPPL
    1. transformation of a matrix expression given in LaTeX to GPPL
    2. generation and evaluation of an arbitrary number of random instances of the expression (different dimensions and numerical values of matrix entries)
    3. differentiation of the expression in GPPL
    4. generation and evaluation of an arbitrary number of random instances of the differentiated expression as in 2. and validation against a finite difference approximation
    5. unparsing of the differentiated expression back to LaTeX

Agenda

  • Proposal (PDF slides to info@stce.rwth-aachen.de) by Apr 10, 2022. Presentation on Apr 8, 2022 at 1pm in seminar room 231 of IT Center.
  • Requirements (slides) by May 1, 2022. Presentation on Apr 28, 2022 at 2:30pm in tbd..
  • Design (slides) by May 22, 2022. Presentation on May 12, 2022 at 2:30pm in tbd.
  • Implementation (slides; access to source repository on git.rwth-aachen.de) by Jun 19, 2022. Presentation on Jun 23, 2022 at 2:30pm in tbd.
  • Publication (PDF report) by Jul 3, 2022.
  • Final Presentation on Jul 14, 2022 at 2:30pm in tbd.