
Programming Language Design Concepts
David A. Watt(Author)
Wiley (Publisher)
Published on 26. March 2004
Book
Paperback/Softback
492 pages
978-0-470-85320-7 (ISBN)
Description
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
More details
Product info
Paperback
Edition
1. Auflage
Language
English
Place of publication
New York
United States
Target group
Professional and scholarly
Product notice
Paperback (trade)
Dimensions
Height: 235 mm
Width: 191 mm
Thickness: 26 mm
Weight
910 gr
ISBN-13
978-0-470-85320-7 (9780470853207)
Schweitzer Classification
Person
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.
Content
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 concepts.
14.2 Pragmatics.
14.3 Case study: HASKELL.
Summary.
Further reading.
Exercises.
15. Logic Programming.
15.1 Key concepts.
15.2 Pragmatics.
15.3 Case study: PROLOG.
Summary.
Further reading.
Exercises
16. Scripting.
16.1 Pragmatics.
16.2 Case study: PYTHON.
Summary.
Further reading.
Exercises.
PART V: CONCLUSION.
17. Language Selection.
17.1 Criteria.
17.2 Evaluation.
Summary.
Exercises.
18. Language Design.
18.1 Selection of concepts.
18.2 Regularity.
18.3 Simplicity.
18.4 Efficiency.
18.5 Syntax.
18.6 Language life cycles.
18.7 The future.
Summary.
Further reading.
Exercises.
Bibliography.
Glossary.
Index.