Open AccessBook
Programming Languages: Concepts and Constructs
Ravi Sethi
- 01 Jan 1989
191
TL;DR: This chapter discusses Functional Programming in a Typed Language, which combines Functional Programming with Lists, and Object-Oriented Programming in C++, a Dialect of Lisp.
read more
Abstract: I. INTRODUCTION. 1. The Role of Programming Languages. Toward Higher-Level Languages. Problems of Scale. Programming Paradigms. Language Implementation: Bridging the Gap. Exercises. Bibliographic Notes. 2. Language Description: Syntactic Structure. Expression Notations. Abstract Syntax Trees. Lexical Syntax. Context-Free Grammars. Grammars for Expressions. Variants of Grammars. Exercises. Bibliographic Notes. II. IMPERATIVE PROGRAMMING. 3. Statements: Structured Programming. The Need for Structured Programming. Syntax-Directed Control Flow. Design Considerations: Syntax. Handling Special Cases in Loops. Programming with Invariants. Proof Rules for Partial Correctness. Control flow in C. Exercises. Bibliographic Notes. 4. Types: Data Representation. The Role of Types. Basic Types. Arrays: Sequences of Elements. Records: Named Fields. Unions and Variant Records. Sets. Pointers: Efficiency and Dynamic Allocation. Two String Tables. Types and Error Checking. Exercises. Bibliographic Notes. 5. Procedure Activations. Introduction to Procedures. Parameter-Passing Methods. Scope Rules for Names. Nested Scopes in the Source Text. Activation Records. Lexical Scope: Procedures as in C. Lexical Scope: Nested Procedures and Pascal. Exercises. Bibliographic Notes. III. OBJECT-ORIENTED PROGRAMMING. 6. Groupings of Data and Operations. Constructs for Program Structuring. Information Hiding. Program Design with Modules. Modules and Defined Types. Class Declarations in C++. Dynamic Allocation in C++. Templates: Parameterized Types. Implementation of Objects in C++. Exercises. Bibliographic Notes. 7. Object-Oriented Programming. What is an Object? Object-Oriented Thinking. Inheritance. Object-Oriented Programming in C++. An Extended C++ Example. Derived Classes and Information Hiding. Objects in Smalltalk. Smalltalk Objects have a Self. Exercises. Bibliographic Notes. IV. FUNCTIONAL PROGRAMMING. 8. Elements of Functional Programming. A Little Language of Expressions. Types: Values and Operations. Function Declarations. Approaches to Expression Evaluation. Lexical Scope. Type Checking. Exercises. Bibliographic Notes. 9. Functional Programming in a Typed Language. Exploring a List. Function Declaration by Cases. Functions as First-Class Values. ML: Implicit Types. Data Types. Exception Handling in ML. Little Quilt in Standard ML. Exercises. Bibliographic Notes. 10. Functional Programming with Lists. Scheme, a Dialect of Lisp. The Structure of Lists. List Manipulation. A Motivating Example: Differentiation. Simplification of Expressions. Storage Allocation for Lists. Exercises. Bibliographic Notes. V. OTHER PARADIGMS. 11. Logic Programming. Computing with Relations. Introduction to Prolog. Data Structures in Prolog. Programming Techniques. Control in Prolog. Cuts. Exercises. Bibliographic Notes. 12. An Introduction to Concurrent Programming. Parallelism in Hardware. Streams: Implicit Synchronization. Concurrency as Interleaving. Liveness Properties. Safe Access to Shared Data. Concurrency in Ada. Synchronized Access to Shared Variables. Exercises. Bibliographic Notes. VI. LANGUAGE DESCRIPTION. 13. Semantic Methods. Synthesized Attributes. Attribute Grammars. Natural Semantics. Denotational Semantics. A Calculator in Scheme. Lexically Scoped Lambda Expressions. An Interpreter. An Extension: Recursive Functions. Exercises. Bibliographic Notes. 14. Static Types and the Lambda Calculus. Equality of Pure Lambda Terms. Substitution Revisited. Computation with Pure Lambda Terms. Programming Constructs as Lambda-Terms. The Typed Lambda Calculus. Polymorphic Types. Exercises. Bibliographic Notes. 15. A Look at Some Languages. Pascal: A Teaching Language. C: Systems Programming. C++: A Range of Programming Styles. Smalltalk, the Language. Standard ML. Scheme, a Dialect of Lisp. Prolog. Bibliography. Credits. Index. 0201590654T04062001
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Scheme implementation of the functional language for mobile agents with dynamic extension
Yasushi Kambayashi,Munehiro Takimoto +1 more
- 12 Dec 2005
TL;DR: It is reported that the entire higher-order mobile agent system can be implemented in a functional setting and has superior compatibility with existing Lisp-based knowledgebase system that makes autonomous robots more intelligent.
4
Modular Specifications of XML Processing Tasks with Attribute Grammars Defined on Multiple Syntactic Views
Bryan Temprado-Battad,Antonio Sarasa-Cabezuelo,José-Luis Sierra +2 more
- 30 Aug 2010
TL;DR: A processing engine based on GLR parsing and on a demand-driven attribute evaluation method for XML processing tasks is proposed, which conforms to a syntactic view specially tailored for the processing aspect addressed.
4
Object orientation in the literature and in education
TL;DR: The article provides a broad overview of the topic of object-oriented programming in computer science education and some exemplary implementations of object orientation in national (German) and international curricula are shown.
Notes to the Reader
TL;DR: Carroll as mentioned in this paper provides an overview of C++, a list of references, and some ancillary notes on C++ with the purpose of giving a high-level acquaintance with C++.
4
Network System Model-Based Multi-level Policy Generation and Representation
Wu Bei,Chen Xing-yuan,Wang Yong-liang,Dai Xiangdong,Peng Jun +4 more
- 12 Dec 2008
TL;DR: According to the refinement of the policy basic attributes, multi-level policy representation described in BNF (Backus-Naur Form) form is promoted, which makes policy representation friendlier and more operable.
4
Related Papers (5)
Alfred V. Aho,Ravi Sethi,Jeffrey D. Ullman +2 more
- 01 Jan 1986
Harold Abelson,Gerald Jay Sussman,Julie Sussman +2 more
- 01 Jan 1985
Bjarne Stroustrup
- 01 Jan 1985
Carlo Ghezzi,Mehdi Jazayeri +1 more
- 01 Jan 1982