1.7 What You Will Learn

The following is a succinct summary of some of the topics about which readers can expect to learn:

  • fundamental and universal concepts of programming languages (e.g., scope and parameter passing) and the options available for them (e.g., lexical scoping, pass-by-name/lazy evaluation), especially from an implementation-oriented perspective

  • language definition and description methods (e.g., grammars)

  • how to design and implement language interpreters, and implementation strategies (e.g., inductive data types, data abstraction and representation)

  • different styles of programming (e.g., functional, declarative, concurrent programming) and how to program using languages supporting those styles (e.g., Python, Scheme, ML, Haskell, and Prolog)

  • types and type systems (through Python, ML, and Haskell)

  • other concepts of programming languages (e.g., type inference, higher-order functions, currying)

  • control abstraction, including first-class continuations

One approach to learning language concepts is to implement the studied concepts through the construction of a progressive series of interpreters, and to assess the differences in the resulting languages. One module of this text uses this approach. Specifically, in Chapters 1012, we implement a programming language, named Camille, supporting functional and imperative programming through the construction of interpreters in Python.

We study and use type systems and other concepts of programming languages (e.g., type inference or currying) through the type-safe languages ML and Haskell in Chapter 7. We discuss a logic/declarative style of programming through use of Prolog in Chapter 14.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.189.170.134