Stevenson | Programming Language Fundamentals by Example | E-Book | www.sack.de
E-Book

E-Book, Englisch, 256 Seiten

Stevenson Programming Language Fundamentals by Example


Erscheinungsjahr 2006
ISBN: 978-1-4200-1335-1
Verlag: Taylor & Francis
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)

E-Book, Englisch, 256 Seiten

ISBN: 978-1-4200-1335-1
Verlag: Taylor & Francis
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)



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.

Stevenson Programming Language Fundamentals by Example jetzt bestellen!

Zielgruppe


Senior undergraduate and beginning graduate students in computer science.


Autoren/Hrsg.


Weitere Infos & Material


A WORD ABOUT USING THIS TEXT

Expectations for the Student and Instructor
Opening Comments

Possible Semester Course

Detailed Semester Plan

Milestone Maps

INTRODUCTION TO THE PROBLEM

Memorandum From the President

Background

SOL

Primitive Data and Primitive Operations

Primitive Data Operations
Control Structures

Expressions
Input File Structures and File Scope

Derived Types

Scope and Persistence

Type System

Primitive Functions and Arguments

Built-in Values, Functions and Pseudo-Functions

Type Conversions

Part 1. Milestones

GENERAL INFORMATION

General Information on Milestones

Milestone Report

General Resources

Makefile Prototype

Milestone I. Learning a New Language: gForth

Milestone Requirements: Introduction to gForth

Case 1. String Representation

Introduction to gForth

Programming in gForth

Introduction to Milestone Cases

Case 2. Elementary Arithmetic Statements

Case 3. Round 2: More Arithmetic

Case 4. if, while Statements and User-Defined Functions
Case 5. Complex Data Types

Case 6. Functions
Milestone II. Lexical Structure and Scanner

Case 7. Project Management

Objectives

Professional Methods and Values

Assignment

Special Reporting Requirements
Additional Information

Scanner Design

Case 8. Designing the Tokens

Case 9. Development of Finite State Automata Definitions

Case 10. Finite State Machine Design

Scanner Design Extended

Case 11. Reasoning about Design

Work Breakdown Structure

Case 12. Scanner Work Breakdown Structure
Symbol Tables

Case 13. Symbol Table Design

Milestone III. Parsing

Objectives

Professional Methods and Values

Assignment
Case 14. Do We Have To Work Hard?
Testing Requirement

Grammars and Things Grammatical

Case 15. Conversion of FSA Graphs to Grammars

Parser Design Using Production Systems

Parser Design II

Case 16. Converting the S Production to Code

Testing the Parser: Context Free Language Generation

Case 17. Structural Induction of Words

Case 18. Developing the Parsing Grammar

Milestone IV. Type Checking

Objective
Professional Methods and Values

Assignment

Performance Objectives

Milestone Report

What is a Type?

Reasoning about Types

Case 19. Historically Important Languages

Developing Type Rules

Case 20. ML Type System

Design Issues

Developing Type-Checking Rules
Case 21. Type Conversion Matrix

Specification for the Whole Type Checker

Case 22. Form of Input

The Search Algorithm

Case 23. Should bools be allowed?

Unification and Type Checking Algorithm

Case 24. Type Checking and the Symbol Table

Case 25. Developing the Type Checking Algorithm

Milestone V. Elementary Compiling: Constants Only

Objectives

Professional Methods and Values
Assignment

Performance Objectives
String Implementation

Ifs and Whiles

Milestone Report

Milestone VI. Scoping and Local Variables

Variables and Local Values

Scoping and SOL

Case 26. Binding Times and Scope

Case 27. Scopes: Filling in the Details

Compiling Issues for SOL

Case 28. Handling Nested Scopes

Case 29. Getting to the Details: Scope and Forth

Case 30. Stack Effects
Milestone VII. User-Defined Functions

Objective

Assignment

Performance Objectives
Milestone Report

Binding the Function Name to the Function

Recursive and Non-Recursive Functions

Implementation Issues

Case 31. Passing Parameters in SOL

Case 32. Return Values

Milestone VIII. User-Defined Complex Data

Assignment

Performance Objectives

Milestone Report

Fundamental Concepts

Writing Arrays and Structures in SOL

Case 33. gForth Structures

Milestone IX. Classes and Objects

Classess and Classs

Assignment

Performance Objectives
Milestone Report
Encapsulation and Information Hiding

Inheritance

Polymorphism

Part 2. General Information

PROJECT

Class

Mind Maps

INTRODUCTION TO LINGUISTICS

Focus Problem

Philosophy of Linguistics

Meaning: Language, Mind and World

Case 34. What Does An Infinite Loop Mean?
What is Syntax?

Case 35. What Can We Learn From A Dictionary?

Case 36. How Does What We learned Play Out In Programming Languages?
Grammar

Case 37. English Grammar with Production Rules

Case 38. Grammars in Programming Languages

Semantics

Focused SQRRR

LINGUISTICS FOR PROGRAMMING LANGUAGES
Meta language versus Object language

Surface Structure and Deep Structure

Case 39. What is the Proper Way to Form Java Symbols?

Case 40. What are the Parts of Speech in Java?

Case 41. How is the Syntax of Java Presented to Developers?

Case 42. Graph Models of Syntax

3. Structural Induction

Case 43. Structural Induction

Interpretation Semantics

What about Pragmatics?

WHAT IS A GENERAL STRUCTURE FOR COMPILING

A General Framework
Case 44. Merging Linguistics and Compiling

Case 45. Process Ordering

Types
Case 46. Primitive Data Types

Recap

Defining a Language

Case 47. Designing Modules

A UNIFIED APPROACH TO DESIGN

Introduction to Design

Two Elements

Using These Ideas in Design

Case 48. Match-case semantics

Design Recap

TECHNICAL FOUNDATIONS IN PROGRAMMING LANGUAGES
Introduction
Case 49. Early History of Programming Languages

Binding Times: When Do We Know?

Scope

Case 50. SOL Definitional Environments

The _-Calculus Model
Case 51. Argument Passing

Implementation Issues

STORAGE MANAGEMENT ISSUES
Computer Memory 261
Determining the Size Required

Case 52. Design an Algorithm to Calculate Size

Case 53. Why Does sizeof compute 16 and not 13?

Case 54. Design an Addressing Polynomial for Arrays

Case 55. Develop Extended Addressing Polynomial

Case 56. General 2-Dimensional Array Addressing Polynomial

Runtime Storage Management

Case 57. Stack Frame Manipulation

Case 58. Listing Activation Records

PERSONAL SOFTWARE DESIGN PROCESS PORTFOLIO Time Management for Computer Science Students

Case 59. Tracking Your Time Usage

Discovering How Long It Takes to Write a Program

Earned Value Computations

Appendix: Templates

Summary Information for PDSPP0

Requirements Template (RWT)

Time Recording Log (TRT)

Schedule Planning Template (SPT)

Defect Log Template (DLT)

HOW DID WE GET HERE? WHERE DO WE GO FROM HERE?
Looking Behind

The Role of the _-calculus

Moving Forward from 1954

From 1954 Until 1965
Programming Languages from 1965-1980

The 1980s and 1990s: The Object Oriented Paradigm

The Parallel Processing Revolution
Critique of the Present

Appendix A. Reflections by One Good Student

Milestone I

Milestone II-III

Milestone IV



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.