3 ms·
There is much good advice given by others here regarding the implementation of languages. However, if you really want to get into language design, there is one
by oldandtired 8y ago
There is much good advice given by others here regarding the implementation of languages. However, if you really want to get into language design, there is one area that you should/need to understand (as far as I am concerned) and that is how to specify the meaning of your language and its constructs. If this is not done, you end up with too many gotchas and special cases in how you will do things.
I have found too many language designers have not thought about this clearly enough. When you go to actually use the language, you will suddenly find all sorts of oddities in how you construct the program you are trying to write. Undefined behaviour is a curse, implementation defined behaviour is a curse.
If your language allows you to write something and it passes the compiler, then make sure that it is completely defined so that no matter what there are no subtle surprises.
- chrisseaton 8y ago> that is how to specify the meaning of your language and its constructs You pose the question but don't seem to answer it - this area is called semantics, and there are several approaches and notations you can use. Types and Programming Languages by Pierce is the most common starting point.
- oldandtired 8y agoI am not posing a question. I am suggesting he look into the subject. The word "semantics" doesn't hold much meaning for many people, they understand the word "meaning" better. I could have dived straight in and suggested that he look at "denotational semantics", but I considered that just a little too much to start him off with. By the way, how much are you doing on Katadhin these day?
- chrisseaton 8y agoI haven't touched Katahdin in the last decade! Some of the ideas live on in Truffle and Graal. http://chrisseaton.com/rubytruffle/pldi17-truffle/pldi17-truffle.pdf http://chrisseaton.com/rubytruffle/pldi17-truffle/pldi17-tru...