Fr. 90.00

Programming Language Design Concepts

English · Paperback / Softback

Shipping usually within 1 to 3 weeks (not available at short notice)

Description

Read more

Informationen zum Autor David Watt is a Professor of Computing Science at Glasgow University. His research interests include the design, specification, and implementation of programming languages, and he has published several books on the topic. He has many years of teaching experience on this and other programming subjects. Klappentext Explains the concepts underlying programming languages, and demonstrates how these concepts are synthesized in the major paradigms: imperative, OO, concurrent, functional, logic and with recent scripting languages. It gives greatest prominence to the OO paradigm.* Includes numerous examples using C, Java and C++ as exmplar languages* Additional case-study languages: Python, Haskell, Prolog and Ada* Extensive end-of-chapter exercises with sample solutions on the companion Web site* Deepens study by examining the motivation of programming languages not just their features Zusammenfassung Explains the concepts underlying programming languages, and demonstrates how these concepts are synthesized in the paradigms: imperative, OO, concurrent, functional, logic and with scripting languages. This book includes numerous examples using C, Java and C++ as exemplar languages. Inhaltsverzeichnis Preface. PART I: INTRODUCTION. 1. Programming Languages. 1.1 Programming linguistics. 1.1.1 Concepts and paradigms. 1.1.2 Syntax, semantics, and pragmatics. 1.1.3 Language processors. 1.2 Historical development. Summary. Further reading. Exercises. PART II: BASIC CONCEPTS 2. Values and Types. 2.1 Types. 2.2 Primitive types. 2.2.1 Built-in primitive types. 2.2.2 Defined primitive types. 2.2.3 Discrete primitive types. 2.3 Composite types. 2.3.1 Cartesian products, structures, and records. 2.3.2 Mappings, arrays, and functions. 2.3.3 Disjoint unions, discriminated records, and objects. 2.4 Recursive types. 2.4.1 Lists. 2.4.2 Strings. 2.4.3 Recursive types in general. 2.5 Type systems. 2.5.1 Static vs dynamic typing. 2.5.2 Type equivalence. 2.5.3 The Type Completeness Principle. 2.6 Expressions. 2.6.1 Literals. 2. 6.2 Constructions. 2.6.3 Function calls. 2.6.4 Conditional expressions. 2.6.5 Iterative expressions. 2.6.6 Constant and variable accesses. 2.7 Implementation notes. 2.7.1 Representation of primitive types. 2.7.2 Representation of Cartesian products. 2.7.3 Representation of arrays. 2.7.4 Representation of disjoint unions. 2.7.5 Representation of recursive types. Summary. Further reading. Exercises. 3. Variables and Storage. 3.1 Variables and storage. 3.2 Simple variables. 3.3 Composite variables. 3.3.1 Total vs selective update. 3.3.2 Static vs dynamic vs flexible arrays. 3.4 Copy semantics vs reference semantics. 3.5 Lifetime. 3.5.1 Global and local variables. 3.5.2 Heap variables. 3.5.3 Persistent variables. 3.6 Pointers. 3.6.1 Pointers and recursive types. 3.6.2 Dangling pointers. 3.7 Commands. 3.7.1 Skips. 3.7.2 Assignments. 3.7.3 Procedure calls. 3.7.4 Sequential commands. 3.7.5 Collateral commands. 3.7.6 Conditional commands. 3.7.7 Iterative commands. 3.8 Expressions with side effects. 3.8.1 Command expressions. 3.8.2 Expression-oriented languages. 3.9 Implementation notes 3.9.1 Storage for global and local variables. 3.9.2 Storage for heap variables. Summary. Further reading. Exercises. 4. Bindings and Scope. 4.1 Bindings and environments. 4.2 Scope. 4.2.1 Block structure. 4.2.2 Scope and visib...

List of contents

Preface.
 
PART I: INTRODUCTION.
 
1. Programming Languages.
 
1.1 Programming linguistics.
 
1.2 Historical development.
 
Summary.
 
Further reading.
 
Exercises.
 
PART II: BASIC CONCEPTS
 
2. Values and Types.
 
2.1 Types.
 
2.2 Primitive types.
 
2.3 Composite types.
 
2.4 Recursive types.
 
2.5 Type systems.
 
2.6 Expressions.
 
2. 6.2 Constructions.
 
2.7 Implementation notes.
 
Summary.
 
Further reading.
 
Exercises.
 
3. Variables and Storage.
 
3.1 Variables and storage.
 
3.2 Simple variables.
 
3.3 Composite variables.
 
3.4 Copy semantics vs reference semantics.
 
3.5 Lifetime.
 
3.6 Pointers.
 
3.7 Commands.
 
3.8 Expressions with side effects.
 
3.9 Implementation notes
 
Summary.
 
Further reading.
 
Exercises.
 
4. Bindings and Scope.
 
4.1 Bindings and environments.
 
4.2 Scope.
 
4.3 Declarations.
 
4.4 Blocks.
 
Summary.
 
Further reading.
 
Exercises.
 
5. Procedural Abstraction.
 
5.1 Function procedures and proper procedures.
 
5.2 Parameters and arguments.
 
5.3 Implementation notes
 
Summary.
 
Further reading.
 
Exercises.
 
PART III: ADVANCED CONCEPTS.
 
6. Data Abstraction.
 
6.1 Program units, packages, and encapsulation.
 
6.2 Abstract types.
 
6.3 Objects and classes.
 
6.4 Implementation notes.
 
Summary.
 
Further reading
 
Exercises.
 
7. Generic Abstraction.
 
7.1 Generic units and instantiation.
 
7.2 Type and class parameters.
 
7.3 Implementation notes
 
Summary.
 
Further reading.
 
Exercises
 
8. Type Systems.
 
8.1 Inclusion polymorphism.
 
8.2 Parametric polymorphism.
 
8.3 Overloading.
 
8.4 Type conversions.
 
8.5 Implementation notes
 
Summary.
 
Further reading.
 
Exercises.
 
9. Control Flow.
 
9.1 Sequencers.
 
9.2 Jumps.
 
9.3 Escapes.
 
9.4 Exceptions.
 
9.5 Implementation notes
 
Summary.
 
Further reading.
 
Exercises.
 
10. Concurrency (by William Findlay).
 
10.1 Why concurrency?.
 
10.2 Programs and processes.
 
10.3 Problems with concurrency.
 
10.4 Process interactions.
 
10.5 Concurrency primitives.
 
10.6 Concurrent control abstractions.
 
Summary.
 
Further reading.
 
Exercises.
 
PART IV: PARADIGMS
 
11. Imperative Programming.
 
11.1 Key concepts.
 
11.2 Pragmatics.
 
11.3 Case study: C.
 
11.4 Case study: ADA.
 
Summary.
 
Further reading.
 
Exercises.
 
12. Object-Oriented Programming.
 
12.1 Key Concepts.
 
12.2 Pragmatics.
 
12.3 Case study: C++.
 
12.4 Case study: JAVA.
 
12.5 Case study: ADA95.
 
Summary.
 
Further reading.
 
Exercises.
 
13. Concurrent Programming (by William Findlay).
 
13.1 Key concepts.
 
13.2 Pragmatics.
 
13.3 Case study: ADA95.
 
13.4 Case study: JAVA.
 
Summary.
 
Further reading.
 
Exercises.
 
14. Functional Programming.
 
14.1 Key concep

Product details

Authors Watt, Da Watt, David A Watt, David A. Watt, David A. (University of Glasgow) Watt, Watt David A.
Publisher Wiley, John and Sons Ltd
 
Languages English
Product format Paperback / Softback
Released 26.03.2004
 
EAN 9780470853207
ISBN 978-0-470-85320-7
No. of pages 504
Subjects Natural sciences, medicine, IT, technology > IT, data processing > Programming languages

Programm, Programmierung (EDV), Informatik, Programmiersprache, Programming & Software Development

Customer reviews

No reviews have been written for this item yet. Write the first review and be helpful to other users when they decide on a purchase.

Write a review

Thumbs up or thumbs down? Write your own review.

For messages to CeDe.ch please use the contact form.

The input fields marked * are obligatory

By submitting this form you agree to our data privacy statement.