Programming Language Fundamentals by Example
Written in an informal yet informative style, Programming Language Fundamentals by Example uses active learning techniques, giving students a professional learning experience based on professional methods applied with professional standards. It provides an understanding of the many languages and notations used in computer science, the formal models used to design phases, and the foundations of languages including linguistics and logic.
To give students a thorough, working knowledge of programming languages, this textbook uses a semester-long project in which students create a programming language. This project brings to life the concepts and theories fundamental to computer languages. The author incorporates "thinking tools" such as concept maps, matrices for analysis, and flowcharts.
Designed for fourth year undergraduates and first year graduates with enough exposure to programming to absorb the technical foundations of languages, this textbook offers a unique approach to understanding how programming languages are created and function.
Table of Contents
How Did We Get Here? Historical Development of Programming Language Features. Introduction to Linguistics. Milestone 1: Learning a New Language: gForth. Linguistics for Programming Languages. What is a General Structure for Compiling? Personal Software Design Process. Milestone 2: Lexical Structure and Scanner. Milestone 3: Parsing. Milestone 4: Type Checking. Milestone 5: Elementary Compiling: Constants. Prelude to Scoping and Functions: the ?-calculus. Milestone 6: Scoping and Local Variables. Milestone 7: User Functions I: Non-Recursion. Milestone 8: User Functions II: Recursion. Milestone 9: Complex Data Types.
Professor D.E. (Steve) Stevenson is an associate professor of computer science at Clemson University, where he is also the director of Institute for Modeling and Simulation Applications. He received a B.A. in mathematics in 1965 from Eastern Michigan University, an M.S. in computer science from Rutgers University in 1975, and a Ph.D. in mathematical sciences from Clemson in 1983. He was an infantry officer for four plus years from 1965–1969. He spent one year in Korea and one year in Viet Nam, where he was an advisor to the 3/3 Battalion, 1st ARVN Division. After leaving the military, he was employed at Bell Telephone Laboratories from 1969–1980. While at Bell Labs, he worked on system support, IMS development (loaned to IBM), and as an internal consultant on performance and database design. Dr. Stevenson worked with early versions of C and Unix. He also worked in many interdisciplinary activities involving modeling and simulation; such activities are now known as computational science and engineering. Computational science led Dr. Stevenson to leave Bell Labs in 1980 to pursue a Ph.D. degree in mathematical sciences at Clemson, specializing in numerical analysis. Since arriving at Clemson, he has worked to develop computational science concepts. Along with Drs. Robert M. Panoff, Holly P. Hirst, and D.D. Warner, he founded the Shodor Education Foundation, Inc. Shodor is recognized as a premier computational science education materials developer and is known for its education of college and university faculty in authentic modeling and simulation activities for science education. The Shodor activities led Dr. Stevenson to investigate new pedagogies; hence, this text is the culmination of some 40 years of experience in interdisciplinary educational and professional activities.