3 ms·
This was my primary frustration with the article. It notes that the "bulk" of the work in building a programming language is in defining the semantics but devot
by johnbender 13y ago
This was my primary frustration with the article. It notes that the "bulk" of the work in building a programming language is in defining the semantics but devotes absolutely no space to the process, tools, and tradition.
A programming language is the semantics and without a strong notion of those semantics and the interactions you end up with confusion and difficulty. For an example one need look no further than Ruby's "implementation as specification" crazyness.
I won't go as far as to say that all language creators should adopt operational semantics when building a language, but if you're serious about it then you should at least investigate the process.
- WalterBright 13y agoI deliberately tried to avoid topics that are well-covered elsewhere.
- dllthomas 13y agoAppropriate, but can you point us at some of those elsewheres?
- WalterBright 13y agoIf you want to figure out how to write a lexer or parser, what better way than to read the code for one? https://github.com/D-Programming-Language/dmd/blob/master/src/lexer.c https://github.com/D-Programming-Language/dmd/blob/master/sr... https://github.com/D-Programming-Language/dmd/blob/master/src/parse.c https://github.com/D-Programming-Language/dmd/blob/master/sr... There's a lot of detail there, but the operation of both is straightforward.
- dllthomas 13y agoI'd thought this subthread was discussing semantics.
- johnbender 13y agoFor anyone who comes across this thread and is genuinely interested in educating themselves about how programming languages can be constructed in a principled way (what I would call sane) you can consult Pierce's Types and Programming Languages. With some work anyone can learn the material. It's not as simple as reading a blog post unfortunately, but you'll have a much deeper understanding of what it means to build a programming language.
- ericbb 13y agoI'm in the midst of reading Types and Programming Languages right now. I'm also reading the more recent Practical Foundations for Programming Languages by Robert Harper. It's written for a similar audience. I would recommend both.
- he_the_great 13y agoIf someone wants to build a language and "A programming language is the semantics" doesn't it really make sense to tell them what the semantics should look like?
- johnbender 13y agoSorry I thought I was being clear when I mentioned operational semantics but in retrospect that may have been totally unclear. I recommend Pierce's Types and Programming Languages. It has everything you need to learn about operational semantics and types systems.