4 ms·
> How to study programming language theory I think the information you're looking for would probably come under the umbrella of "Programming Language Design",
by pansa2 6y ago
> How to study programming language theory
I think the information you're looking for would probably come under the umbrella of "Programming Language Design", not "Programming Language Theory" (PLT). Discussions on language design would include topics such as object-oriented vs functional programming, static vs dynamic typing and, importantly, language usability.
However in my experience, PLT is almost entirely concerned with academic research into the properties of highly-advanced type systems. Most of PLT seems to be irrelevant even to the designers of industrial languages, let alone users of them.
- ck_one 6y agoThanks for the clarification. I am indeed more interested in Programming Language Design. Do you have pointers to intro texts which provide practical value?
- pansa2 6y agoYou mention "Writing an Interpreter in Go" - are you familiar with the similar book, "Crafting Interpreters" [0]? It's highly recommended by many but, again, may be more implementation-oriented than you're looking for. In that case, here is a list of other books that its author seems to recommend [1]. Another thing I've found very helpful is to investigate the details behind how existing languages work. It's especially interesting to think about how language flaws are sometimes unavoidable consequences of the underlying design. For example, you mention familiarity with Python. Dynamically-typed scripting languages are my area of interest, so I have spent time making sense of Python's object model [2], including things like the descriptor protocol. It's then interesting to compare it to Ruby's object model [3], which despite surface similarities actually works in a completely different way. [0] http://www.craftinginterpreters.com/ http://www.craftinginterpreters.com/ [1] https://twitter.com/munificentbob/status/901543375945388032 https://twitter.com/munificentbob/status/901543375945388032 [2] https://docs.python.org/3/reference/datamodel.html https://docs.python.org/3/reference/datamodel.html [3] https://www.youtube.com/watch?v=X2sgQ38UDVY https://www.youtube.com/watch?v=X2sgQ38UDVY
- lifthrasiir 6y ago> However in my experience, PLT is almost entirely concerned with academic research into the properties of highly-advanced type systems. The Brown PLT group [1], responsible for the Racket programming language in particular, is a notable counterexample. But it's still a shame that I can't give any other counterexamples. (I used to joke that everything PLT but not type theory comes from the Brown PLT. It sounds no longer funny.) [1] https://cs.brown.edu/research/plt/ https://cs.brown.edu/research/plt/