Currently at OOPSLA 09 and have just scribed for the DSM 09 Workshop and co-organized the 3rd KISS workshop. Interesting that in both these workshops there seems a great deal of interest in language components. This chimes with Role-based Approach Towards Modular Language Engineering presented at SLE 09. Domain Specific Languages researchers seems to be looking for a way to define languages using reusable fragments. Of course there is no consensus on what a language component is, but the term 'semantics' comes up alot. Laurie Tratt and are working on this issue and have termed the overall approach 'Language Factories'. Our paper is to be presented at Onward! 09.
Markus Voelter has written an article about Best practices for DSLs and Model Driven Development. The article lists and analyses approaches to the development of DSLs and gives them a point score based on whether the author thinks they work or not. Lots of interesting ideas and good advice. I'm not sure I agree with all of them. On one point: how general purpose should a DSL be? I think this is tricky. In the days before DSLs were called DSLs, I was taught to start with a very small general purpose language with a well defined semantics and gradually sugar both syntax and semantics until it had been transformed into the required language. This approach seems to achieve both generality and specificity at the same time whilst being a repeatable step-by-step process.
Saeed Dehnadi and Richard Bornat have done some field work that claims to show that students aptitude for programming can be detected before a line of code is written. Their approach involves a giving the students a programming test before starting a programming course. I recall being given a Swedish test in junior school to determine my aptitude for French and German.
The smallest number that is infinite
-
In software, we represent real numbers as binary floating-point numbers.
Effectively, we represent real numbers as a fixed-precision integer (the
significa...
Anchoring AI to a reference application
-
Service templates are a typical building block in the “golden paths”
organisations build for their engineering teams, to make it easy to do the
right thi...
Exponentially bad phrasing
-
The news is so bad right now everywhere that it is natural to take refuge
in discussing matters of (bad) style. I have things to say about the real
issue...
Protecting your business in the age of ransomware
-
Ransomware is hitting close to home for organizations of all sizes and
sectors. With attacks making headlines daily, it’s no surprise that 62% of
surveyed ...
The case for strong leadership in agile teams
-
The key to scaling a software engineering organization is stable teams. A
while ago I wrote about the need to focus on stable, autonomous teams.
Teams wi...
The redesigned Racket blog
-
*posted by Matthew Butterick*
I love Racket. But a few months ago, I really wanted to kill this blog.
Why? Because who reads blogs, right? It’s like get...
10 Things I Learnt about Life from Masterchef
-
OK, I confess, I watch Masterchef, the television reality show and cookery
programme. We record them on the Sky box and if I need to mindlessly zone
out,...
Declarative versus Imperative
-
I responded to a recent discussion Declarative vs imperative programming on
the Types mailing list, but my post was rejected because of a bad mail
header. ...
New Book Available
-
The new book, DSL Engineering is now available. You can get the print
version as well as the PDF via dslbook.org. Have fun with the book and let
me know wh...
Debug Mode is the Only Mode
-
There has been a fair amount of discussion recently surrounding some of
Bret Victor’s talks and blog posts. If you haven’t seen these, I recommend
them hi...