Programming Languages: Principles and Practices (3rd Edition)

Programming Languages: Principles and Practices (3rd Edition)

Kenneth A. Lambert, Kenneth C. Louden

Language: English

Pages: 673

ISBN: 1111529418

Format: PDF / Kindle (mobi) / ePub


Kenneth Louden and Kenneth Lambert's new edition of PROGRAMMING LANGUAGES: PRINCIPLES AND PRACTICE, 3E gives advanced undergraduate students an overview of programming languages through general principles combined with details about many modern languages. Major languages used in this edition include C, C++, Smalltalk, Java, Ada, ML, Haskell, Scheme, and Prolog; many other languages are discussed more briefly. The text also contains extensive coverage of implementation issues, the theoretical foundations of programming languages, and a large number of exercises, making it the perfect bridge to compiler courses and to the theoretical study of programming languages.

 

 

 

 

 

 

 

 

 

 

level (Java, Python, Ruby). But he then asks two interesting questions: If there is a range of language levels, which languages are at the highest level? And if there is a language at the highest level, and it still exists, why wouldn’t people prefer to write their programs in it? Not surprisingly, Graham claims that Lisp, after 50 years, always has been and still is the highest-level language. He then argues, in a similar manner to Gabriel, that Lisp’s virtues have been recognized only by the

the lines of code below it, which represent data values rather than instructions for the program. As you might expect, machine language programming is not for the meek. Despite the improvement on the earlier method of reconfiguring the hardware, programmers were still faced with the tedious and error-prone tasks of manually translating their designs for solutions to binary machine code and loading this code into computer memory. 1.1.2 Assembly Language, Symbolic Codes, and Software Tools The

C7729_ch04.indd 132 03/01/11 9:35 AM 4.6 Curry: A Functional Logic Language 133 The function permutation inserts the first element of a nonempty list argument into a permutation of the rest of that list: permutation [] = [] permutation (x:xs) = insert x (permutation xs) The function insert places an element at an arbitrary position in a list. The function is defined nondeterministically for nonempty lists, in the following pair of equations: insert x ys = x : ys insert x (y:ys) = y : insert

computing, the basic structure of each application is so similar to others that software developers have begun using application frameworks. An application framework is a collection of related software resources, usually in object-oriented form, that is used C7729_ch05.indd 143 03/01/11 9:31 AM 144 CHAPTER 5 Object-Oriented Programming by software developers through redefinition and reuse to provide specific services for applications. Examples of application frameworks include the Swing

language than C or C++. Moreover, unlike C++, Java is not a hybrid of objectoriented and procedural languages, but is purely object oriented, with one exception. In Java, the scalar data types (also called primitive types) are not objects, for reasons of efficiency. In this section, we give an overview of the features of Java that support object-oriented programming. In the process, you will see that the language not only allows the programmer to write Smalltalk code in C-like syntax but also

Download sample

Download