Next: INTRODUCTION TO SECOND
Up: No Title
Previous: No Title
- INTRODUCTION TO SECOND EDITION (Jan 1996)
- PREFACE TO THE FIRST EDITION (Sept 1994)
- CHAPTER.1: INTRODUCTION --- THE ROOMS EXAMPLE
- CHAPTER.2: INTRODUCTION TO THE SYNTAX AND SEMANTICS OF POP-11
- Internal semantics and external semantics
- Expressions denote objects. Imperatives denote actions
- Compile time vs run time processes
- How a programming language is specified: virtual machines
- Some Pop-11 data-types and their external forms
- Some Pop-11 actions
- Built in and user-defined procedures
- Errors and error messages
- Comments in Pop-11 programs
- Pop-11 Expressions: some examples
- Imperatives: some examples
- Procedure definitions are initialised identifier declarations
- Global and local procedure definitions
- Procedure calls in Pop-11
- Using infix operators
- Procedures which produce results
- Exercises
- Introduction to printing in Pop-11
- Conditionals and conditions
- Predicates and recognizer procedures
- Summary of syntactic roles in Pop-11 programs
- Lexical analysis and the Pop-11 itemiser
- Itemisation rules in Pop-11
- Revision questions
- Built in Pop-11 data types
- Procedures associated with data-types
- Data creation, memory management and the heap
- List of Pop-11 Data-types
- Further information on built in data types
- Words
- The internal representation of words
- The Pop-11 dictionary
- Strings
- Dstrings
- Idents (identifier records)
- Types of numbers in Pop-11
- Integers and Bigintegers
- Floating point numbers: decimals and ddecimals
- Ratios use indefinite precision
- Complex numbers
- Recognizers for number types: integral, rational, decimal, complex
- Reading in numbers relative to a base
- Characters (8 bit integers)
- Booleans (true and false)
- Pairs and lists
- References (single component records, consref, cont).
- Types of vectors: strings, full vectors, intvecs, shortvecs
- Standard full vectors
- Packed integer vectors: intvecs and shortvecs
- Procedures, closures, arrays, properties
- closures
- arrays
- Using newanyarray to create an array from an intvec
- properties
- `Destroy properties'
- Declaring a variable to be of type procedure
- Lightweight processes
- undefs
- Keys
- Unique objects: nil, termin, stackmark
- The empty list []
- The stream terminator, termin
- The stack mark, popstackmark
- Devices
- External pointers
- Sections
- Prolog variables and terms: prologvars, prologterms
- Data types required for the Poplog X window interface
- Objectclass - An object oriented extension to Pop-11
- Additional information needed to define Pop-11
- The garbage collector
- Exercises
- CHAPTER.3: PROCEDURES AND THE STACK
- CHAPTER.4: PROCEDURES IN POP-11
- CHAPTER.5: NUMERICAL AND LOGICAL FACILITIES IN POP-11
- CHAPTER.6: LIST PROCESSING IN POP-11
- On knowing about lists
- Why use lists?
- Lists vs other representations
- Lists in AI
- Constructing lists in Pop-11
- WARNING lists in procedures are not "constants"
- Concatenating lists using <>
- Merging lists using the double up-arrow
- Lists are a derived data-type
- Why use "hd" and "tl" instead of "front" and "back" ?
- Diagrams showing static lists represented as pairs
- Dynamic lists: generators and pdtolist
- Some procedures for manipulating lists
- cons, conslist, initl, sysconslist
- allbutfirst, allbutlast
- dl or explode, destlist
- applist, maplist, ncmaplist
- recursive_front
- expandlist
- rev and ncrev
- setfrontlist
- sort and syssort
- last, lastpair
- oneof, shuffle
- delete, ncdelete
- flatten and flatlistify
- length and listlength
- copy, copylist, copydata, copytree
- subscrl, fast_subscrl
- Predicates on lists
- Iterating on lists
- Using for ... in ... do .... with lists
- Iterating over two or more lists
- Iteration vs Recursion
- Exercises
- More exercises on lists
- Exercises on the meaning of the single and double up-arrows
- CHAPTER.7: THE POP-11 PATTERN MATCHER AND DATABASE
- CHAPTER.8 AN AI APPLICATION: A GENERAL PROBLEM SOLVER
- CHAPTER.9 RECORDS, VECTORS AND OBJECTCLASS
- APPENDIX
- About this document ...
Aaron Sloman
Fri Jan 2 03:17:44 GMT 1998