4 ms·
> Dion language demo (experimental project which stores program as AST). Michael Franz [1] invented slim binaries [2] for the Oberon System. Slim binaries were
by thesz 8mo ago
> Dion language demo (experimental project which stores program as AST).
Michael Franz [1] invented slim binaries [2] for the Oberon System. Slim binaries were program (or module) ASTs compressed with the some kind of LZ-family algorithm. At the time they were much more smaller than Java's JAR files, despite JAR being a ZIP archive.
[1] https://en.wikipedia.org/wiki/Michael_Franz#Research https://en.wikipedia.org/wiki/Michael_Franz#Research
[2] https://en.wikipedia.org/wiki/Oberon_(operating_system)#Plugin_Oberon_and_slim_binaries https://en.wikipedia.org/wiki/Oberon_(operating_system)#Plug...
I believe that this storage format is still in use in Oberon circles.
Yes, I am that old, I even correctly remembered Franz's last name. I thought then he was and still think he is a genius. ;)
- panstromek 8mo agoInteresting. It looks to me this was more about the portability of the resulting binary, IIUC. Dion project was more about user interface to the programming language and unifying tools to use AST (or Typed AST?) as a source of truth instead of text and what that unlocks. Dion demo is here: https://vimeo.com/485177664 https://vimeo.com/485177664
- thesz 8mo agoI took a look. Their system allow for intermediate state with errors. If that erroneous state can be stored to disk, they using a storage representation that is equivalent to text. If erroneous state cannot be stored, this makes Dion system much less usable, at least for me. They also deliberately avoided pitfalls of languages like C. While they can do that because they can, I'd like to see how they will extend their concepts of user interface to the programming language and unifying tools to use (Typed) AST to C or, forgive me, C++, and what it'll unlock. Also, there is an interesting approach of error correcting parsers: https://www.cs.tufts.edu/comp/150FP/archive/doaitse-swierstra/error-correcting.pdf https://www.cs.tufts.edu/comp/150FP/archive/doaitse-swierstr... Much extended version is in Haskell at Hackage: https://hackage.haskell.org/package/uu-parsinglib https://hackage.haskell.org/package/uu-parsinglib As it allows monadic parsing combinators, it can parse context-sensitive grammars such as C. It's interesting to see whether their demonstration around 08:30 of Visual Studio unable to recover from an error properly can be improved with error correction.