This repository has chapters, code, and organizational materials for the (very technical) book "Multi-language Code Generation for Computational Workflows".
The book is not finished yet -- it is a work in progress...
To describe how from natural and programing languages specifications to make parsers and interpreters for the generation of actionable or executable code.
We develop and utilize Domain Specific Languages (DSLs) for natural language workflows.
For the target computational workflows we assume the existence of packages that provide monadic programming pipelines for the workflows.
We have parsers for DSLs that interpret DSL sentences (commands) into code for targeted (monadic) packages.
-
Parsers and interpreters: Raku, Wolfram Language (WL).
-
Computational workflows: Julia, Python, R, WL.
More or less a "standard" exposition plan is followed:
-
Motivation
- (Why we care? What we try to accomplish?)
-
Brief overview
-
Approach taken
-
Functionalities or challenges to address
-
Limitations
-
-
How the parsers are made?
-
How the interpreters are made?
-
Special efforts and use cases
-
Future work
- And how to redo the whole thing
Developers interested in:
-
Computational workflows
-
Parsers and interpreters
Two major types of code and related repositories: for parsing and interpretation, for computation. See the references below.
-
"useR! 2020: How to simplify Machine Learning workflows specifications (A. Antonov), lightning", (2020), R Consortium at YouTube.
-
Multi language Data Wrangling Translation - talk advertisement, (2020), Anton Antonov at YouTube.
[AA1] Anton Antonov, "How to simplify Machine learning workflows specifications? (useR! 2020)", (2020), MathematicaForPrediction at WordPress.
[AAdr1] Anton Antonov, DSL::English::DataQueryWorkflows Raku package, (2020), GitHub.
[AAdr2] Anton Antonov, DSL::English::EpidemiologyModelingWorkflows Raku package, (2020), GitHub.
[AAcr1] Anton Antonov, Epidemiology Compartmental Modeling Monad in R, (2020), GitHub.
Anton Antonov
Windermere, Florida, USA
2020-10-09