As discussed in the related Jira (SYSTEMML-451) I have started to
implement a prototype/proof of concept for an embedded DSL in Scala.
I have summarized the current approach in a short document that you can
find on github together with the code:
https://github.com/fschueler/emma/blob/sysml-dsl/emma-sysml-dsl/README.md
Please note that current development happens in the Emma project but
will move to an independent module in the SystemML project once the
necessary additions to Emma are merged. By having the DSL in a separate
module, we can include Scala and Emma dependencies only for the users
that actually want to use the Scala DSL.
The current code serves as a proof of concept to discuss further
development with the SystemML community. I especially welcome input from
SystemML Scala users on the usability of the API design.
Next steps will include the translation from Scala code to DML with
support of all features currently supported in DML, including control
flow structures.
Also, a coherent way of executing the generated scripts from Scala and
the interaction with outside data formats (such as Spark Dataframes)
will be integrated.
I am happy to answer your questions and discuss the described approach
here!
Felix
- Proof of Concept: Embedded Scala DSL fschueler
-