Understanding SDFF
Contact
Prof. Dr. Claus Möbus
Room: A02 2-226
claus.moebus@uol.de
-------------------------------------------
Secretary
Manuela Wüstefeld
Room: A02 2-228
Tel: +49 441 / 798-4520
manuela.wuestefeld@uol.de
-------------------------------------------
Understanding SDFF
Understanding SDFF: From MIT/GNU-Scheme to Julia/Pluto.jl
Hanson, Ch. & Sussman, G.J.; Software Design For Flexibility: How To Avoid Programming Yourself into a Corner, MIT Press, 2021
The authors try to motivate devs to use an additive style in designing software. All programs in the book are written in MIT/GNU-Scheme – a highly flexible language -. The authors argue that the presentation and explanation of programming ideas is more concise in Scheme than in other more popular languages (SDFF, 2021, p.xvi). Our hypothesis is that Julia being more popular than Scheme offers the same or even more conciseness and higher usability. In some cases we use RACKET/Scheme as an intermediate representation in the transpilation process.As IDE we have chosen PLUTO a reactive notebook offering a fantastic platform for development and documentation of Julia programs.
This experiment has two aims. The first is rather selfish. We want to improve our competence in Racket, Scheme and Julia. The second is centered at our hypothesis, whether Julia is sufficiently usable, flexible, expressible, and concise to follow all ideas of Hanson and Sussman expressed in their book SDFF.
Chapter 2 of SDFF is replaced by our own development "OOP - The Julia(n) Way -.
- 2. Domain-Specific Languages
- 2.1 Combinators
- 2.1.1 Function Combinators (Julia/Pluto)
- 2.1.1 Function Combinators (Racket-Scheme has to be installed)
- 2.2 OOP (the Julia(n) Way) (replacement of SDFF’s ch. 2.2 *Regular Expressions*)
- 2.3 Wrappers (Julia/Pluto)
-------------------------------------------------------------------------------------------------------------
This is a draft under the Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. Comments, improvement and issue reports are welcome: claus.moebus(@)uol.de
-------------------------------------------------------------------------------------------------------------