Next: Inheritance
Up: What are our requirements for
Previous: What are our requirements for
Recall that the RINGS R in Computer Algebra
are obtained by applying rules like
- (1)
-
R = ,
- (2)
-
n /n,
- (3)
-
R R[X],
- (4)
-
(R,) R/
- (5)
-
R (R),
- (6)
-
(R1, R2) R1×R2.
To implement the above rules we would like to do the following constructions
in our programming language.
- To define functions which return a type (as in rule (2)).
- To define functions that can be parametrized by a type (as in rule (3)).
Hence we need GENERICITY.
- To handle INTERFACE (or type of types).
Indeed in (3) we need R to be a ring.
Hence we need BOUNDED GENERICITY.
- In rule (4) we need to say that is an ideal of R.
Hence we need BOUNDED GENERICITY
WITH DEPENDENT TYPES.
- We should be able to have functions as parameters of other functions.
For instance an ordered abelian free monoid genetated by
a set S depends on a total ordering on S.
Hence functions must have types too.
Finally, both functions and types must
have types and must be possible parameters for functions.
Hence functions and types must
be TREATED AS VALUES.
Next: Inheritance
Up: What are our requirements for
Previous: What are our requirements for
Marc Moreno Maza
2003-06-06