Design is an essential topic for all compuer science students regardless of whether or not they will ever have to create a programming language. The user who understands the motivation for various language facilities will be able to use them more intelligentlu; the compiler writer to implement them more reasonably. Implementation is also important since the language designer must be aware of the costs of the facilities provided. This text treats the design and implementation of programming languages as fundamental skills that all computer scientists should possess. It illustrates concepts with representative languages from five generations of language development. Design and implementation issues surrounding Fortran, Algol-60, Pascal, Ada, Lisp, SmallTalk, and Prolog are covered in-depth as case studies to illustrate larger themes. The implementation techniques discussed in this text are seminal; they form the basis of techniques that will continue to be useful and that can be varied to achieve a wide range of goals.
This isn't a "how to" book; and, it certainly isn't a "learn XYZ in 21 days" book. It is the best book I've ever read about the design of computer programming languages. The author shows that there are common principles behind the design of various programming languages.
The languages covered are old: a machine-like language, Fortran, Algol, Pascal, ADA, LISP, SmallTalk and Prolog. However, this does not detract from the value of the book. Indeed it adds some interesting historical insight.
Don't go out and get it today, but get it some day...and take your time to read it through. Even if you do not agree with all the principles, you'll find a fascinating author who looks at real examples, draws out the motivations behind specific language-design, and threads them together to formulate broader, more universal principles.