Skip to main content
main-content
Top

About this book

This clearly written textbook introduces the reader to the three styles of programming, examining object-oriented/imperative, functional, and logic programming. The focus of the text moves from highly prescriptive languages to very descriptive languages, demonstrating the many and varied ways in which we can think about programming. Designed for interactive learning both inside and outside of the classroom, each programming paradigm is highlighted through the implementation of a non-trivial programming language, demonstrating when each language may be appropriate for a given problem. Features: includes review questions and solved practice exercises, with supplementary code and support files available from an associated website; provides the foundations for understanding how the syntax of a language is formally defined by a grammar; examines assembly language programming using CoCo; introduces C++, Standard ML, and Prolog; describes the development of a type inference system for the language Small.

Table of Contents

Chapter 3. Assembly Language

Abstract
Python is an object-oriented, interpreted language. Internally to the Python interpreter, a Python program is converted to bytecode and interpreted using a virtual machine. Most modern programming languages have support for high-level abstractions while the instructions of a virtual machine are closer to the machine language instructions supported by hardware architectures, making the interpretation of bytecode easier than interpretation of the original source program.
Kent D. Lee

Chapter 5. Standard ML

Abstract
Chapter 3 introduced assembly language which was a very prescriptive language. Certain operands had to be on the operand stack before an instruction could be executed.
Kent D. Lee

Chapter 7. Prolog

Abstract
Imperative programming languages reflect the architecture of the underlying von Neumann stored program computer: Programs update memory locations under the control of instructions.
Kent D. Lee

Chapter 8. Type Inference

Abstract
Many language implementations, like C++ and Java, check the types of values and operations to be sure each operation is supported for the types of its operands.
Kent D. Lee

Chapter 9. Appendix A: The CoCo Virtual Machine Specification

Abstract
CoCo is a virtual machine which includes a built-in assembler.
Kent D. Lee

Chapter 10. Appendix B: The Standard ML Basis Library

Abstract
Following is a subset of the Standard ML Basis Library.
Kent D. Lee
Additional information