Programming Language Pragmatics, Third Edition

Category: Programming
Author: Michael Lee Scott
3.9
All Hacker News 8
This Month Reddit 3

Comments

by SQLSavant   2019-07-21

/u/TruCult gave a wonderful answer and opinion piece - so I won't reiterate what he has to say.

However, I will add that if you have the extra cash laying around and want a general programming reference that you can compare different programming paradigms and concepts to as you learn multiple different programming languages, you'd be hard pressed to find a better book than Programming Language Pragmatics

It's something that can stay on your bookshelf well into your veteran/senior years as a developer.

by jimsyhadron   2019-07-21

I've been following my own journey upgrading my knowledge of language design over the last ten years or so. Some resources I highly recommend:

​

  • Language Implementation Patterns from PragProg. Java-based examples but easy enough to understand for a non-Java speakers.
  • Programming Language Pragmatics by Michael Scott. More of a university-level taxonomy of programming languages, but you can certainly learn a lot from studying languages that already exist.
  • Introduction to Compiler Construction from Universit├Ąt Salzburg - a lecture series available online in a bunch of places including as a podcast - which is how I watched it; on the way to work on the bus.

​

If you're a real beginner then I would suggest starting at How to Create Your Own Programming Language.

by Sour_Tooth   2019-07-21

Thanks for the response! I read some of the sample pages on Amazon, and the book looks great! I might get myself a copy. I also noticed that a newer, fourth edition of the book has been released. It is almost $40 more. Is there a large enough difference between the editions to justify the price?

by tokenadult   2017-08-19
You received another interesting answer. My native language is General American English, and I grew up in what was essentially a monolingual immediate family and neighborhood of English speakers, although both of my parents had had some instruction in other languages. All of my grandparents were born in the United States, but three of the four spoke languages other than English at home, and my two maternal grandparents had all of their schooling in German.

German as a second language was mandatory for all elementary pupils in fourth, fifth, and sixth grade in my childhood school district, very unusual for the United States. I had more German in junior high and senior high (in two different states) and then Russian in senior high. I entered university as a Russian major and immediately began taking Chinese, switching my major to Chinese as I grew in delight for that language. I have had formal instruction as an adult in Modern Standard Chinese (a.k.a. Mandarin), Cantonese, Biblical Hebrew, Literary Chinese, Attic Greek, Biblical Hebrew, Japanese (first in the medium of Chinese, then in English), Taiwanese, and Hakka, and various courses in linguistics (also in the mediums of both English and Chinese). I have engaged in self-study of Biblical Aramaic, Mongolian, Spanish, French, Latin, Hungarian, Malay-Indonesian, Esperanto, Interlingua, etc., etc., etc.

I have to respectfully disagree with the strong version of the linguistic relativity hypothesis. Within each language grouping, people differ far more in their personal thinking along the dimension of visual thinker or not, or auditory thinker or not, than people differ from one another in thought patterns based on language background. But it is useful to learn another language and to live in another culture for exposure to new basic assumptions, and the same applies to learning computer language paradigms. Besides the book mentioned in another reply, I like the books

http://www.amazon.com/Programming-Language-Pragmatics-Third-...

http://www.amazon.com/Essentials-Programming-Languages-Danie...

too as overviews of various programming languages.

by hga   2017-08-19
Programming Language Pragmatics by Michael L. Scott: The explanations of many things I'd read in other sources are no less than fantastic, I now understand a bunch of things I had only superficially "got" previously. http://www.amazon.com/Programming-Language-Pragmatics-Third-..., check out the overview and reviews.

Coders at Work by Peter Seibel: By far the best of this type of book (well, not counting the '80s classic Programmers at Work which I haven't read since then), one of the best Lisp authors interviews in depth a lot of really interesting and/or important people, from James Zawinski to Donald Knuth, with Javascript, static FP and PARC people, Guy Steele, Peter Norvig, Ken Thompson, Fran Allen (really important interview which points out how C/C++ to the exclusion of truly high level languages have been a disaster when used beyond their proper niches), etc. All are masters who've gotten their hands dirty, many are theory people as well. http://www.amazon.com/Coders-at-Work-Peter-Seibel/dp/1430219...

Garbage Collection by Jones Lins: Pretty much the only book in the field (except for the forthcoming Advanced Garbage Collection sequel in the middle of this year), covers the territory as of the mid-90s. Much more fun than trying to track down 100 individual papers and trying to make sense of it all. Exposition is clear and you get a real feeling for the subtleties of the field (especially when you try fun things like generational and/or concurrent GC). http://www.amazon.com/Garbage-Collection-Algorithms-Automati...

by tokenadult   2017-08-19
This is a simplistic restatement (on a rather ugly webpage color scheme) of the strong version of the linguistic relativity hypothesis ("Sapir-Whorf hypothesis"), which is surely wrong. My native language is General American English, and I grew up in what was essentially a monolingual immediate family and neighborhood of English speakers, although both of my parents had had some instruction in other languages. All of my grandparents were born in the United States, but three of the four spoke languages other than English at home, and my two maternal grandparents had all of their schooling in German.

German as a second language was mandatory for all elementary pupils in fourth, fifth, and sixth grade in my childhood school district, very unusual for the United States. I had more German in junior high and senior high (in two different states) and then Russian in senior high. I entered university as a Russian major and immediately began taking Chinese, switching my major to Chinese as I grew in delight for that language. I have had formal instruction as an adult in Modern Standard Chinese (a.k.a. Mandarin), Cantonese, Biblical Hebrew, Literary Chinese, Attic Greek, Biblical Greek, Japanese (first in the medium of Chinese, then in English), Taiwanese, and Hakka, and various courses in linguistics (also in the mediums of both English and Chinese). I have engaged in self-study of Biblical Aramaic, Mongolian, Spanish, French, Latin, Hungarian, Malay-Indonesian, Esperanto, Interlingua, etc., etc., etc.

I have to respectfully disagree with the strong version of the linguistic relativity hypothesis. Within each language grouping, people differ far more in their personal thinking along the dimension of visual thinker or not, or auditory thinker or not, than people differ from one another in thought patterns based on language background. But it is useful to learn another language and to live in another culture for exposure to new basic assumptions, and the same applies to learning computer language paradigms. People who program for a living, or who program just for fun, may like the books

http://www.amazon.com/Programming-Language-Pragmatics-Third-...

or

http://www.amazon.com/Essentials-Programming-Languages-Danie...

among other books on programming languages mentioned here on HN as examples of overviews of different approaches to high-level computer programming languages facilitating different kinds of programming problem-solving.

The case of human languages is quite a bit different. All human languages are constrained by the biology of the human brain, and human ear and human vocal tract (or hands and arms, in the case of sign languages for the deaf), and all human languages, without exception and even if they are constructed languages, have ambiguities and illogical features inconsistent with other features of the language. Many of the faults of Esperanto are very well documented,

http://www.xibalba.demon.co.uk/jbr/ranto/

and the Lojban promoters I have met online since 1994 have repeatedly demonstrated lack of logical capacity (at least in our common language of English) in a manner that puts me off from learning Lojban.

Learning a new cultural perspective by living in a new culture and learning the predominant language there is a very good idea, and highly educational. But the incidental features of one language as contrasted with another have no necessary relationship to how speakers of each language think, or how they can think.