Standard ML in 2023
There was an ACM SIGPLAN ICFP track called ML'23 apparently.
20:47 It's a pity that they couldn't have worked on MLRisc a bit more: this was in 1994! "CPS is compiled to a tree language called MLRISC; intended in part, to describe the simplest kinds of operations implementable in hardware. No assumptions are made regarding addressing modes or types of instructions, and because of our register allocation scheme, there are few assumptions made about physical registers. The MLRISC is then converted to a flow graph of target machine instructions, which is optimized using generic optimization modules parameterized over a machine description. ... The new code generation strategy is implemented using an SML version of iBurg" It was only 20% slower than code generated by the LLVM backend. See A New Backend for Standard ML of New Jersey.
He also did a talk on the Pretty Printer system:
I think the way to deal with this is to recognise that pretty-printing is just the inverse of parsing a language, so a pretty printer would be specified by a grammar, annotated with some formatting style-sheets. This would have the advantage of being able to place the program in a pipeline with the user interface defined by a grammar for the input and the output. The output of course is potentially infinite so the output formatting should allow the user to select what finite initial segment of that should be displayed. Then distributed interactive systems could be defined by connecting such ML programs together. See Ian Clarke on Freenet and Zainab Ali - Recursion Schemes from First Principles.
Subscribe to ACM SIGPLAN.
It's sad how hard it is for people to get away from old habits. Programming languages are still something that most people see as a way for programmers to generate executable files for some operating system to run. And user-interfaces are subsystems in those programs that connect the programs to the operating system in some way. But it doesn't have to be like this. See Richard Clegg Explaining What's Wrong With Computer Science.
See Tomas Petricek's Course: Write your own tiny programming system(s)! and https://tomasp.net/coeffects/.
Subscribe to Tomas Petricek.
Comments
Post a Comment