Next: The World of ARS
Up: aplpleonl
Previous: Bibliography
Contents
- A++ as its nucleus
- Linking Logic with the
- A++ interpreter
- A++
| Development of Applications with
| A++ Interpreter
| Installation of Cygwin
- Abelson, Harold
- WWW Links
- abstraction
- Origin of A++
| ARS Generalization
| ARS
| Syntax of A++ including
- abstraction `add'
- Abstraction `add' (1)
- abstraction `and'
- and
- abstraction `compose'
- Abstraction `compose'
- abstraction `mult'
- Abstraction `mult'
- abstraction `not'
- not
- abstraction `or'
- or
- abstraction `three'
- Abstraction `three'
| Abstraction `three'
- abstraction `two'
- Abstraction `two'
| Abstraction `two'
- access to names in a lambda abstraction
- Closure Pattern
- ACOMP
- ARS++
- add
- Adding two numbers: add
- addelt
- Adding an element to
- adding an element to a set
- Adding an element to
- addition
- compose
| Detailed Discussion of Addition
- addition of `two' and `three'
- Addition of the numbers
- aldisp
- Abstractions for associative lists
- Alonzo Church
- Origin of A++
| Explanation of `three apples'
| Origin
- alpha-conversion
- Synthesis of the inner
| Synthesis of (lambda(f) ...)
| Synthesis of (lambda(f) ...)
| Renaming the variables: x
| Alpha Conversion
| Examples:
- and
- and
- application of associative lists
- Application of associative lists
- architecture
- Internal Architecture of A++
- arithmetic operations
- Arithmetic Operations
- arity of a function
- Changing the arity of
- ARS
- Origin of A++
| A++
| ARS Generalization
| ARS
| Basic abstractions derived from
| General Programming Patterns and
- ARS and C
- ARSAPI
- ARS and C++
- ARSAPI
- ARS and Java
- ARSAPI
- ARS based programming
- Origin
- ARS plus Scheme plus Extensions
- Development of Applications with
- ARS++
- Origin of A++
| Features of A++
| Development of Applications with
| Linking Logic with the
| ARS++
- ARS++ compiler ACOMP
- ARS++
- ARSAPI
- ARSAPI
| ARSAPI
- ARSAPI for C
- ARSAPI
- ARSAPI for C++
- ARSAPI
- ARSAPI for Java
- ARSAPI
- arsc.tar.gz
- Linux
| Installation of the ARS
- arscint
- Linux
| Linux
- arscint.exe
- Installation of the ARS
| Installation of the ARS
- art of programming
- A++
- assoc
- Abstractions for associative lists
- associative list
- Dictionary Pattern
| Associative Lists in A++
| Application of associative lists
- attributes of an object
- Classes of objects
- AVIM
- ARS++
- bank account
- Classes of objects
- base class
- Base class for all
- base-object-class
- Classes of `animal-shelter' application
| Classes of `library' application
- basic abstractions
- Basic Abstractions
- basic abstractions derived from ARS
- Basic abstractions derived from
- basic training in programming
- A++
- basic usage of Y-combinator
- Basic Usage of Y-Combinator
- bdisp
- Linking Logic with the
| Abstraction for displaying a
- beauty of ARS
- Origin of A++
| ARS Generalization
- Benson, Brent
- Acknowledgements
- beta-abstraction
-Abstraction
|
-Abstraction
- beta-conversion
- Rule of
-Conversion
| Rule of
-Conversion
- beta-reduction
-Reduction
| Reducible Expression `redex'
- Boehm, Hans J.
- Acknowledgements
- bound and free variables
- Bound and Free Variables
- bound variables
- Bound and Free Variables
- C
- A++
| Remark:
- C lambda abstraction
- CLAM Pattern
- C++
- A++
| Remark:
- car
- List Pattern
| Selector `car'
- cdr
- List Pattern
| Selector `cdr'
- Chazarain, Jacques
- Acknowledgements
| WWW Links
- children and programming
- Logo
- Church Numerals
- Explanation of `three apples'
| Comparing two numbers: `equaln'
- Church, Alonzo
- Acknowledgements
| Acknowledgements
| Explanation of `three apples'
| Origin
- CLAM
- CLAM Pattern
- class diagram
- Class Diagram of Library
- class oriented
- Constructors
- Classes of `Library'
- Classes of `library' application
- classes of objects
- Classes of objects
- CLOS
- Meta Object Protocol Pattern
- closure
- Closure
| Closure Pattern
| Creating instances of a
- Coad, Peter
- Classes of objects
| Inheritance
- collections of data
- Collections of Data
- combining two sets
- Combining two sets: `union'
- comparing two numbers: equaln
- Comparing two numbers: `equaln'
- comparing two numbers: gep
- Comparing two numbers: `gep'
- comparing two numbers: gtp
- Comparing two numbers: `gtp'
- comparing two numbers: ltp
- Comparing two numbers: `ltp'
- comparing two objects: equalx
- Comparing two numbers: `equaln'
- compilation of the interpreter
- Installation of the ARS
- compilation of the interrpreter
- Linux
- compiler ACOMP
- ARS++
- compose
- compose
| Creating a new function
- composing a new function
- Creating a new function
- computer resources
- Support Functions
- conflict between a free and a lambda-bound variable
- Synthesis of the inner
| Synthesis of (lambda(f) ...)
- cons
- List Pattern
| Constructor `cons'
- constitutive principles of A++
- Constitutive Principles of A++
- constructor
- Creating instances of a
- constructor cons
- Constructor `cons'
- constructor of a class
- Constructors
- conversion of lambda-expressions
- Commenting the definition:
- converting elements in a list
- Converting all elements in
- converting the function `map'
- Converting the `map' function:
- core of functional programming
- Explanation of `three apples'
- created on the fly
- Explanation of `three apples'
- curry
- Changing the arity of
| Converting the `map' function:
- Curry, H.B.
- Changing the arity of
| Fixpoint of a Function
- Cygwin
- Installation of Cygwin
- debug
- Converting all elements in
- decrementing a number
- Decrementing a number: `pred'
- defining abstractions
- Detailed Discussion of Addition
- definition of A++
- Definition of A++ as
- definition of abstraction
- Origin of A++
- definition of symbols
- Abstractions for associative lists
- delegation
- Inheritance
| Inheritance
- detailed discussion of addition
- Detailed Discussion of Addition
- detailed discussion of multiplication
- Detailed Discussion of Addition
- development of applications
- Development of Applications with
- dictionary
- Associative Lists in A++
| Application of associative lists
- dictionary pattern
- Dictionary Pattern
- difference between a closure and an object
- Closure Pattern
- Dijksta, Edsger W.
- Pascal
- dispatcher of an object
- Sending messages
- double-quoted string
- Linking Logic with the
| Syntax of A++ including
| Support Functions
- DOWHILE-Construct
- The abstraction `while'
- dynamic object model
- Meta Object Protocol Pattern
- eager evaluation
- Remark:
|
-Reduction
- eager languages
-Abstraction
- easier to verify
- To open a new
- educational programming language
- Introduction
- eliminate implicit recursion
- Introduction
- empty list
- Constructor `cons'
| Checking for an empty
- encapsulation
- Closure
| Closure Pattern
| Encapsulation
| OOP-Technology in application `animal-ahelter'
- environment
- Closure
| Closure Pattern
- environment frame
- Creating instances of a
- equaln
- Comparing two numbers: `equaln'
- equalx
- Linking Logic with the
| Syntax of A++ including
| Comparing two numbers: `equaln'
| Abstractions for associative lists
| Support Functions
- essentials of programming
- Scheme
| A++
- eta-abstraction
- Eta Conversion
|
-Abstraction
- eta-conversion
- Eta Conversion
- eta-reduction
- Eta Conversion
|
-Reduction
- evaluating lambda-expressions
- Detailed Discussion of Addition
- evaluation of expressions
- Imperative Programming in A++
- example `animal-shelter'
- 2nd example of object
- example for alpha-conversion
- Examples:
- example of object-oriented programming
- 2nd example of object
| Classes of `library' application
- executing methods
- Executing methods
- execution of statements
- Imperative Programming in A++
- exploring the fundamentals of programming
- To support an alternate
- expression
- Syntax of A++ including
- expressions to be evaluated
- Features of A++
- expressiveness and power
- Logo
- extended numerical abstractions
- Extended Numerical Abstractions
- extended version of A++
- Support Functions
- extension of map
- Abstractions for associative lists
- extensions of A++
- Linking Logic with the
| Comparing two numbers: `equaln'
- extent
- Lexical Scope
- faculty of a number
- Recursion Pattern
| Calculating the faculty of
- false
- Body of the IF-Abstraction
- filter
- Selecting elements from a
- first class object
- Closure Pattern
| Explanation of `three apples'
- fixpoint expansion by beta-reduction
- Generation of fixpoint using
- fixpoint generation using Y-combinator
- Generation of fixpoint using
- fixpoint of a function
- Basic Usage of Y-Combinator
- for-each
- Iterating through all elements
- free variables
- Lexical Scope
| Bound and Free Variables
- Friedman, Daniel P.
- WWW Links
- fun in programming
- Scheme
- functional programming
- ARS Generalization
| Features of A++
| Converting all elements in
| Imperative Programming in A++
- functional programming languages
- To open a new
- fundamentals of programming
- A++
- Garbage-Collector
- Installation of the ARS
- gc6.0.tar.gz
- Linux
| Installation of the ARS
- general programming patterns
- General Programming Patterns and
- generalization of the Lambda Calculus
- Origin
| ARS Generalization
- gep
- Comparing two numbers: `gep'
- Glenn L. Vanderburg
- Origin of A++
- global environment
- Creating instances of a
- GNU
- Acknowledgements
- gtp
- Comparing two numbers: `gtp'
- Guy L. Steele Jr.
- Origin of A++
- hands-on experience
- To support an alternate
- HAS-relationship
- Relation between classes
| OOP-Technology in application `animal-ahelter'
- hash table
- Dictionary Pattern
- Haskell
- Remark:
- head
- List Pattern
- Heinz, Carsten
- WWW Links
- higher order function
- Basic abstractions derived from
| Higher Order Function Pattern
| compose
| Higher Order Functions
- idiosyncracies of a programming language
- Scheme
- IF-abstraction
- The IF- Abstraction
- imperative programming
- ARS Generalization
| Features of A++
| Imperative Programming in A++
- imperative programming style
- Iterating through all elements
- imperative programs
- Converting all elements in
- incr
- Linking Logic with the
| Syntax of A++ including
| Support Functions
- indefinite extent
- Lexical Scope
| Components of a constructor
- inheritance
- Inheritance
| Inheritance
| OOP-Technology in application `animal-ahelter'
- initializing the A++ interpreter
- Initializing the A++ Interpreter
- insertion sort
- Insertion Sort
- installation of the A++ interpreter
- Linux
- installation of the garbage collector
- Installation of the ARS
- instance of a class
- Instance of a class
- internal architecture
- Internal Architecture of A++
- interpreter
- A++
| Development of Applications with
- IS-relationship
- Relation between classes
| OOP-Technology in application `animal-ahelter'
- iterating through all elements of a list
- Iterating through all elements
- iteration
- The abstraction `while'
- iterative control structure
- Basic abstractions derived from
- Java
- Acknowledgements
| A++
| Remark:
- Kamin, Samuel N.
- Acknowledgements
| WWW Links
- key
- Dictionary Pattern
- key/value pair
- Dictionary Pattern
| Sending messages
| Associative Lists in A++
- LATEX
- Acknowledgements
- Lambda Calculus
- Origin of A++
| Purpose
| The Lambda Calculus
- Lambda Calculus interpreter
- WWW Links
- lambda-abstraction
- Closure
| Commenting the definition:
- lambda-bound variables
- Lexical Scope
| Bound and Free Variables
- lambda-conversion
- Basic Rules for Lambda
- lambda-expression
- Commenting the definition:
- lazy evaluation
- Commenting the definition:
| Remark:
- ldisp
- Linking Logic with the
| Abstractions for associative lists
| Abstraction for displaying lists
- learning instrument
- Introduction
| Purpose
- length of a list
- Determining the length of
- lexical scope
- Lexical Scope
| Lexical Scope
| Closure Pattern
| Components of a constructor
- library
- Classes of `library' application
- library management example
- Class Diagram of Library
- limited extent
- Lexical Scope
- linked list of pairs
- List Pattern
- Linux
- Acknowledgements
| Linux
- Lisp
- Remark:
- list of pairs
- Dictionary Pattern
- list pattern
- List Pattern
- listings
- WWW Links
- lists
- Basic abstractions derived from
- lists of lists
- List Pattern
- load
- Linking Logic with the
| Syntax of A++ including
| Support Functions
- locate
- Searching for an element
| Checking for a member
- locatex
- Searching for an element
- logic programming
- Features of A++
- logical abstractions
- Basic abstractions derived from
- Logo
- Logo
- loop
- The abstraction `while'
- ltp
- Comparing two numbers: `ltp'
- major programming paradigms
- Converting all elements in
- map
- Converting all elements in
- map2
- Abstractions for associative lists
- mapc
- Converting the `map' function:
- memberp
- Checking for a member
- message passing
- Message Passing Pattern
- message passing programming pattern
- Object Oriented Programming in
- meta object protocol
- Meta Object Protocol Pattern
- methods of an object
- Classes of objects
- minimal programming language
- Purpose
- Miranda
- Remark:
- motivations for the development of A++
- Name of the language
- MS-Windows
- Installation of Cygwin
- mult
- Multiplying two numbers: mult
- multiple inheritance
- Relation between classes
- multiplication
- compose
| Detailed Discussion of Addition
- multiplication of `two' and `three'
- Multiplication of the numbers
- n-th
- Retrieving the n-th element
- name of the language
- ARS Generalization
- ndisp
- Linking Logic with the
| Application of numeric abstractions
| Abstraction for displaying a
- net-library
- WWW Links
- network structure
- List Pattern
- nil
- List Pattern
| Constructor `cons'
| Abstraction for the end
- Norvig, Peter
- Acknowledgements
- not
- not
- notation used in conversion rules
- Notation used in Conversion
- nucleus
- Linking Logic with the
- nullp
- List Pattern
| Checking for an empty
- numbers
- Numeric Abstractions
- numerical abstractions
- Basic abstractions derived from
| Numeric Abstractions
- object-oriented programming
- ARS Generalization
| Features of A++
| Object Oriented Programming in
| 2nd example of object
| Classes of `library' application
- one
- one
- online bookstore
- WWW Links
- oop-technology
- OOP-Technology in application `animal-ahelter'
- oop-terminology
- Encapsulation
- operator
- Syntax of A++ including
- or
- or
- origin of A++
- Origin of A++
| Origin
- origin of Scheme
- Origin of A++
- pair
- List Pattern
| Constructor `cons'
- pairp
- List Pattern
- paradigms of programming
- Converting all elements in
- Pascal
- Pascal
| Lexical Scope
| Remark:
- passed as argument
- Closure Pattern
| Explanation of `three apples'
- patterns
- A++
| General Programming Patterns and
- Perl
- Development of Applications with
| Remark:
- polymorphism
- Polymorphism
| OOP-Technology in application `animal-ahelter'
- powerful programming patterns
- A++
- pre-compiled interpreter
- Linux
- pre-defined primitive abstractions
- Syntax of A++ including
| Pre-defined primitive abstractions in
- pre-defined primitives
- Examples using pre-defined primitives
- predecessor of a natural number
- Decrementing a number: `pred'
- predefined
- Syntax of A++ including
- predefined operation
- Syntax of A++ including
- predefined primitives
- Support Functions
- predefined value
- Syntax of A++ including
- primitive abstractions
- Linking Logic with the
- primitive function print
- Abstractions for associative lists
- primitive functions
- A++
| Linking Logic with the
| Comparing two numbers: `equaln'
- principle of abstraction
- Origin of A++
- print
- Linking Logic with the
| Syntax of A++ including
| Abstractions for associative lists
| Support Functions
- program listings
- WWW Links
- program verification
- Imperative Programming in A++
- Programmierung pur
- Origin of A++
| ARSAPI
- programming paradigm
- Converting all elements in
- programming patterns
- To support a method
| General Programming Patterns and
- programming style
-
see programming paradigm
- programming tasks in the real world
- Linking Logic with the
- purpose of A++
- Purpose
- Python
- A++
- quit
- Linking Logic with the
| Syntax of A++ including
| Support Functions
| Program termination
- R5RS-Report
- Origin of A++
- real world application programs
- Development of Applications with
- real world programming problems
- ARS++
- recursion
- Basic abstractions derived from
| Recursion Pattern
| Determining the length of
| Calculating the faculty of
| Calculating the sum of
| The abstraction `while'
| Using the Y-Combinator to
- redex
-Reduction
- reducible expression
-Reduction
- reference
- ARS
| Syntax of A++ including
- referencing abstractions
- Detailed Discussion of Addition
- relational abstractions
- Basic abstractions derived from
| Relational Abstractions
- relationship between classes
- Classes of objects
| Relation between classes
- removing an element from a list
- Removing an element from
- renaming variable names
- Renaming the variables: x
- retrieving the n-th element from a list
- Retrieving the n-th element
- returned as value
- Closure Pattern
- returned by functions
- Explanation of `three apples'
- rigorous confrontation
- A++
- robust
- To open a new
- robust programs
- Imperative Programming in A++
- robustness
- Converting all elements in
- rule based programming
- Features of A++
- rule of associativity for abstraction
- Rule of Associativity for
- rule of associativity for application
- Rule of Associativity for
- rules of alpha-conversion
- Rules of Alpha Conversion
- rules of associativity
- Rules of Associativity
- S.Toeche-Mittler
- WWW Links
- safe programs
- Imperative Programming in A++
- Scheme
- Origin of A++
| Origin of A++
| Origin of A++
| Acknowledgements
| Scheme
| A++
| Linking Logic with the
| Meta Object Protocol Pattern
| Remark:
| ARS++
- Scheme programming language
- ARS Generalization
- search values in an associative list using keys
- Abstractions for associative lists
- searching for an element in a list
- Searching for an element
- selecting elements from a list
- Selecting elements from a
- selector car
- Selector `car'
- self
- Creating instances of a
- sending messages
- Sending messages
- sending messages to objects
- Features of A++
| First example of object
- services provided by an object
- Classes of objects
- set operations
- Basic abstractions derived from
| Set Operations
- set pattern
- Set Pattern
- side effects
- Converting all elements in
| Iterating through all elements
| Imperative Programming in A++
| The abstraction `while'
- single-quote character
- Abstractions for associative lists
- single-quoted string
- Linking Logic with the
| Syntax of A++ including
| Support Functions
- skilled programmers
- To support a method
- smallest language
- Origin
- SML
- Remark:
- sort
- Insertion Sort
- Springer, George
- WWW Links
- Stallman, Richard
- Acknowledgements
- statements to be executed
- Features of A++
- Steele, Guy L.
- Origin of A++
| Acknowledgements
| ARS Generalization
- stored in memory
- Closure Pattern
- structure of a class
- Classes of objects
- Structured Programming
- Pascal
| The abstraction `while'
- substituting `two' and `three'
- Substitution of `two' and
- substituting references of abstractions
- Detailed Discussion of Addition
- substituting the reference `three'
- Substituting `three' in [7]
- substituting the reference `add'
- Subsitution of `add' in
- substituting the reference `compose'
- Substitution of `compose' in
| Substitution of `compose' in
- substituting the reference `mult'
- Substitution of `mult' in
- substituting the reference `two'
- Substituting `two' in [11]
- subtraction
- Subtracting a number: `sub'
- succ
- succ
- sum of elements in a list
- Calculating the sum of
- super class
- Inheritance
- support functions
- Support Functions
- Sussman, Gerald J.
- Acknowledgements
| WWW Links
- symbolic programming
- Logo
- symbols
- Abstractions for associative lists
- syntax of A++
- Commenting the definition:
| Examples of syntax of
- syntheis of `add' and `two three'
- Synthesis of `add' and
- synthesis
- ARS
| Syntax of A++ including
- synthesis of (lambda(m n) ...) and `two three'
- Synthesis of (lambda(m n)
- synthesis of `mult' and `two three'
- Synthesis of `mult' and
- synthesis of abstractions
- Detailed Discussion of Addition
- tail
- List Pattern
- teaching method
- Motivations for the development
- teaching the principles of programming
- Motivations for the development
- terminating the A++ interpreter
- Program termination
- test of `animal-shelter'
- Test of `animal-shelter'
- testing the basic abstractions
- Testing the basic abstractions
- Testing the interpreter
- Linux
- three
- three
- Toeche-Mittler, Jens S.
- Acknowledgements
- top level environment
- Creating instances of a
- total environment
- Closure Pattern
- trademark of functional programming
- Converting all elements in
- tree
- List Pattern
- true
- Body of the IF-Abstraction
- turtle
- Logo
- two
- two
- unadulterated
- Origin of A++
- Undiluted Programming
- Linking Logic with the
- union
- Combining two sets: `union'
- union of two sets
- Checking for a member
- unique expressiveness
- To open a new
- using Y-combinator to implement recursion
- Using the Y-Combinator to
- utility abstraction
- compose
- value
- Dictionary Pattern
- Vanderburg, Glenn L.
- Origin of A++
- variable
- Syntax of A++ including
- verify programs
- Converting all elements in
- virtual machine AVIM
- ARS++
- vmfalse
- Linking Logic with the
| Syntax of A++ including
| Support Functions
- vmtrue
- Linking Logic with the
| Syntax of A++ including
| Support Functions
- vmzero
- Linking Logic with the
| Syntax of A++ including
| Support Functions
- vorkompilierter Interpreter
- Installation of the ARS
- while
- The abstraction `while'
| The abstraction `while'
- wrapper around a lambda-abstraction
-Abstraction
- writing expressions to be evaluated
- Features of A++
- Y-combinator
- Y-Combinator
| Using the Y-Combinator to
- Y-combinator and A++
- Testing the Y-Combinator in
- Y-combinator test program
- Running the Y-Combinator test
- zero
- zero
- zerop
- zerop
- zeropair
- Abstraction `zeropair'
Subsections
Georg P. Loczewski
2004-03-05