- ...
definition
- The name ARS++ is derived form ARS + Scheme + Extensions. This means
that the primitive operations of Scheme and some more have been made available to A++ in the
form of predefined values and abstractions.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... me,
- -unfortunately
a little bit late though after having been working in the field of programming for over 30 years-
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... programming
- This era began with Prof. Dijkstra's famous article in the Communications of the ACM with the title 'A GOTO-Statement Considered Harmful'.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... another.
- In A++ no real distinction is made
between data and functions, because effectively there are only abstractions:
- lambda-abstractions
- references that refer to abstractions
- syntheses that return abstractions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
above
- A class in a language like C++ or Smalltalk has many
other features not covered here. The features we have described
are common however to all implementations of OOP technology
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... record.
- The same
environment is labelled `environment 1' viewed from the second closure however! This is no
mistake. The label `environment 1' refers to the inherited environment and `environment 2'
refers to the proper environment frame of a closure.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... `x'.
- It
should be pointed out that this no-name or anonymous function
invoking `f' has access to `f' due to `Lexical Scope'. `Lexical Scope' gives functions access to variables that are not `lambda-bound',
i.e. variables that are inherited from the environment of the
lambda-abstraction or closure. This `Lexical Scope' is one of
the 5 constitutive principles of A++.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
argument
- The responsibility to check for the validity of
the argument is left to the caller of the function.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.