Next:
Educational Programming Langages
Up:
aplpleonl
Previous:
Acknowledgements
Contents
Educational Programming Langages
Introduction
Pascal
Scheme
Logo
A++
Introduction to A++
Purpose of A++ and Origin
Purpose
Origin
ARS -- Generalization of the Lambda-Calculus
Name of the language
Motivations for the development of A++
To support an alternate method of teaching the principles of programming
To provide a learning tool for exploring the fundamentals of programming
To support a method teaching powerful programming patterns applicable to most languages
To open a new view of programming for many programmers:
Features of A++
Programming paradigms supported:
Constitutive Principles of A++
Closure
Basic abstractions derived from ARS
Development of Applications with A++
Internal Architecture of A++
Definition of A++ as Programming Language
Examples of A++ - Syntax
Linking Logic with the Physical World
Syntax of A++ including pre-defined primitive abstractions
Examples using pre-defined primitives of A++
Pre-defined primitive abstractions in A++
A++ including pre-defined primitives
A++ Overview
General Programming Patterns and A++
Closure Pattern
CLAM Pattern
List Pattern
Dictionary Pattern
Set Pattern
Recursion Pattern
Higher Order Function Pattern
Message Passing Pattern
Classes of objects
Instance of a class
Constructors
Creating instances of a class
Sending messages
Executing methods
Essential features of object oriented programming
Relation between classes
Meta Object Protocol Pattern
Discovering the Power of A++
Basic Abstractions
The IF- Abstraction
Extended Logical Abstractions
Application of extended logical abstractions
Numeric Abstractions
Natural Numbers
Arithmetic Operations
Application of numeric abstractions
Collections of Data
Basic abstractions for pairs
Basic utility abstractions for lists
Extended Numerical Abstractions
Abstraction `zeropair'
Decrementing a number: `pred'
Subtracting a number: `sub'
Relational Abstractions
Comparing two numbers: `equaln'
Comparing two numbers: `gtp'
Comparing two numbers: `ltp'
Comparing two numbers: `gep'
Examples for recursion
Calculating the faculty of a number
Calculating the sum of elements of a list
Insertion Sort
Higher Order Functions
Creating a new function by composition: `compose'
Changing the arity of a function:`curry'
Converting all elements in a list: `map'
Converting the `map' function: `mapc'
Selecting elements from a given list: `filter'
Searching for an element in a given list: `locate'
Iterating through all elements of a list: `for-each'
Set Operations
Checking for a member in a set: `memberp'
Adding an element to a set: `addelt'
Combining two sets: `union'
Associative Lists in A++
Abstractions for associative lists
Application of associative lists
Miscellaneous abstractions
Testing the basic abstractions
Object Oriented Programming in A++
First example of object oriented programming in A++
Source code for constructor `make-account'
Testing class `account'
2nd example of object oriented programming in A++
3rd example of object oriented programming in A++
Imperative Programming in A++
Computer Resources for A++
Support Functions
Abstraction for displaying a number
Abstraction for displaying a boolean value
Abstraction for displaying lists
A++ Interpreter
Installation of the A++ Interpreter
Initializing the A++ Interpreter
Initializing the A++ Interpreter part 1
Initializing the A++ Interpreter part 2
Initializing the A++ Interpreter part 3
Initializing the A++ Interpreter part 4
Initializing the A++ Interpreter part 5
Initializing the A++ Interpreter part 6
Initializing the A++ Interpreter part 7
WWW Links
Extending A++
ARS++
ARSAPI
The Lambda Calculus
Introduction
Origin
Definition
Literature
Syntax of Lambda Expressions
Basic Rules for Lambda Conversions
Notation used in Conversion Rules
Alpha Conversion
Beta Conversion
Eta Conversion
Rules of Associativity
Y-Combinator
Testing the Y-Combinator in A++
A++ Source code of Y-Combinator test program
Running the Y-Combinator test program
Comments on the Y-Combinator test program
Background of the Author
Bibliography
The World of ARS
Georg P. Loczewski 2004-03-05
Printed version of book typeset in LaTeX can be
ordered now!!
Impressum und Datenschutz