This is one of best books of Programming Languages I know. I use it as basic bibliography to teach Programming Languages in a College in Brazil. This book must be compared with the books of Terrence Pratt, Guezzi and Watt among others. This book do not intend to be a book to teach any language like C or Java. This books is a book to explain issues about the design of languages. (Sorry for my english mistakes) --Concept of Programming
Concepts of Programming Languages by Robert W. Sebesta, Sixth edition is truly a well-written book. Perhaps one of the best books written on this topic. Sebesta has done an exceptional job conveying the topic to the reader, making a complex topic both easy to read and understand. This textbook is good for any college student or professional trying to get a feel of how the most popular programming languages have evolved in the past 4 decades, and what sets these languages apart. Topics in this book range from Zuse's Plankalkul (the first programming language) to how Exception Handling is done in Java and Logic Programming and everything in between. Interviews with some of the pioneers of our time such as James Gosling (the creator of Java) and Bjarne Stroustrup (the designer of C++), and side "History Notes" represent some of the "fun" readings the author has added to this book. Each chapter ends with a brief but concise summary followed by problem sets that assess the important topics covered in the chapter. Even though this book is targeted for a junior-level programming course, some of the topics are well worth the reading for an advanced programmer or a graduate student. The author starts by giving the reasons behind why such topic needs to be studied: · To increase capacity to express ideas - the depth at which we can program, just like the way we think, is highly influenced by the expressive power of the language in which we communicate our thoughts. · Improved background for choosing appropriate language - if you know more about programming languages, you have a better idea what to choose when development time comes. · Increased Ability to learn new languages - continuous learning in the field of software engineering is very much essential. If one knows the concepts of one programming language, applying those concepts to other language to learn or understand become much simpler and easier. · Better understanding of the significance of implementation - Someone who knows the implementation details of that language can only fix some programming bugs. · Overall advancement of computing - For better decisions to be made going forward with computing and software development, one needs to learn from some of the mistakes that gotten us where we are. Things to do or not to do in this relatively new science. The author starts by giving a very descriptive background on programming languages, starting from Zuse's Plankalkul, the first programming language. Zuse's defined the Plankalkul and wrote many algorithms in the language for a variety of problems. Even thought it was never implemented, Plankalkul paved the way for other programming languages that would follow it. Fortran, LISP, ALGOL 60, COBOL, BASIC and other high-level programming languages would follow over the years and evolve. The author gives the history behind each language, and goes in to a detail description of how each language evolved over the years. Even though chapter 2 gives the background behind most programming languages, the book only covers the most popular and widely used programming languages thereafter, mainly Fortran, C/C++, Ada and Java. If your goal is not to teach or learn the details of compilers and/or compiler design, chapter 3 and 4 are defiantly for you. Lexical analysis talks about small-scale language constructs, such as names and numeric literals. Syntax analysis deals with the large-scale constructs, such as expressions, statements, and program units. In less than a hundred pages of text, the author explains the background, theory and implementation of syntax and lexical representation and analysis. It wets the reader's appetite enough that if --Concept of Programming --This text refers to an out of print or unavailable edition of this title.