Building the access pointers to a computation environment †
V.E.Wolfengagen

arXiv:cs/0106018v1 [cs.LO] 10 Jun 2001

Vorotnikovsky per., 7, bld. 4
Institute for Contemporary Education “JurInfoR-MSU”
Moscow, 103006, Russia
vew@jmsuice.msk.ru

Abstract

The observations show the concepts and notions shared by the
distinct approaches and the theories. The importance of extracting
all the useful feature from the notions of function and type are well
understood. Here we will try to rearrange and put together some
important ideas concerning the evaluation of expressions. The most
of the attention is paid to environment of the evaluation to suit it
with the common database models. An environment is assumed to
consist of the products of the domains. Thus, the obvious way to
get an access to its partitions is to evaluate the projections, each of
them being type according to the positions of the counterparts. This
intuitively means, the pointers to an environment are to be generated. Some unexpected features arise wherever the encapsulation
of objects is used relatively the environment prescribed.
To cover the notion in use the most of attention is paid to interrelations and correspondences between types, functions and environment of evaluation. The language is left out of this paper scope,
and model theoretic aspects are attracted. The style of reasoning in
a category is used along with the equational solutions.
Section 2 covers the minimal amount of a type theory to put the
necessary accents. The projections are used almost in a traditional
sense. The operationˆgives a kind of suit to shift around the variables. In addition, the correspondence between the projections and
the identity maps brings in a theory the intuitive ground.
An access to values coupled in environment is discussed in section 3. The main topics are generation of the access pointers and
the encapsulation of the objects. The commutative diagram techniques is applied to establish the most important equation. The
reasons and solutions are based on the possibilities of the citation.
An atomic case is covered by Lemma 3.1. Its generalization leads
to the Theorem 3.1 whenever the function constant is applied to an
argument. To pass an actual parameter the closure is generated.

A common object technique equipped with the categorical and
computational styles is briefly outlined. An object is evaluated
by embedding in a host computational environment which is the
domain-ranged structure. An embedded object is accessed by the
pointers generated within the host system. To assist with an easy
extract the result of the evaluation a pre-embedded object is generated. It is observed as the decomposition into substitutional part
and access function part which are generated during the object evaluation.

1

Introduction

Recent issues in a data modeling area tend to attract some general
algebraic ideas. The most influent to the target data model are the
properties of the database domains and their interconnections.
Some useful observations concerning the mappings between
the relational database domains [IP94] result in the solutions to integrate a database scheme. But the difficulties were observed when
the type considerations occurs: the first-order data model becomes
overloaded with the complicated and intuitively unreasonable mappings, especially when attempts to use a category theory are done.
The attempts to apply the same ideas for a conceptual modeling [LH96] are not yet advanced to cover the known effects and
models. A gap between the pure reasoning with the objects in a
category-style manner (the maps and domains have the similar status) and the realistic data models is indicated every time (see, e.g.,
[HLF96]) when the researcher put the database concepts together.
Nevertheless, the feeling of a category theory usefulness is growing with the rate of accumulating the practical experience in a field
[Jac91].
The semantics of database is heavy based on the evaluation of
the expressions [BSW94]. The success of the approach is also estimated by the simplicity and intuitive transparency whenever the
maps between domains are involved. Information system engineering [JD93] extremely needs to apply the theoretically balanced data
models with the higher-order structures.

2

A theory of types

A variety of possible theories of types has been developed with
different purposes and with distinct mathematical or logical ideas
in use. A category theory gives one of the theories.
To establish a universe of discourse for types we need some
kind of primitive frame. Usually we start with a set of generic
types and generate the derived types applying some building principles. In a pure category theory we are not given neither building
principles nor clear understanding of making new types from old.
Entering a category theory we observe the relations between types
which hold whenever corresponding mapping statement

†
This research is supported by the Russian Foundation for Basic Research (project
96-01-01923)

Proceedings of the First East-European Symposium on
Advances in Databases and Information Systems (ADBIS’97). St.-Petersburg, September 2–5, 1997.
St.-Pb.: St.-Petersburg University, 1997.

f : Env → Dy
obtains (here: Env and Dy are domains).
117

(1)

2.1.3

The way of reading the mapping statement depends on intuitive reasons. Whenever we apply to category theory, a mapping
statement is supposed being taken as a statement with one-place
functions and operation ‘◦’ of composition with one-place functions. Thus, practical reasons concern the multi-place functions to
increase their arity.
The solutions to bring composition with multi-place functions
(see, e.g., [Sza78]) are known but give no real suit.
The easier way is to assume that the category has cartesian
products and to select the particular representatives of the product domains. In particular, the cartesian power Dn for every n ≥ 0
gives n-ary functions as maps
f : Dn → Dy .

2.1
2.1.1

A theory of functions.

A category usually gives a ‘local’ universe of selected functions. In
case of arbitrary functions we need the functional spaces as explicit
domains in the category.
Given Dx and Dy we want to form (Dx → Dy ) as a domain in
its own right. After adopting the above, the functional space does
contain the various maps.
Whenever we have an element f from (Dx → Dy ) and the
element x from Dx we need to establish the map that will apply
element f to element x giving rise to the value of function f :
ε : [f, x] 7→ f (x)

(2)
This evaluation map ε is typed as

A description of products

ε : (Dx → Dy′ ) × Dx → Dy′

Empty product.

In addition there has to be a map for shifting around variables.
Suppose
g : Env × Dx → Dy′

To make a description of products we bring in the product and start
with the assumption that a category has a special domain O as the
empty product:
Dy0 = Dx0 = O,
(3)

is a map with two arguments. In an evaluation

and for every domain D a special map:

g([i, x])

0D : D → O

(4)

we can think of holding i constant and regarding g([i, x]) as a function of x. We need a name for this function and for correspondence
with possible values of x:

From an intuitive reason the domain O has one element, and map
0D is unique, i.e. whenever f : D → O then f = 0D .

ĝ : Env → (Dx → Dy′ )

2.1.2

A theory of tuples and multi-ary maps.

so that the function we are thinking of - given x - was

This kind of a theory is based on the products. Concerning binary
products we have for arbitrary two domains Dx and Dy a special
choice of a domain Dx × Dy , and, more generally,

ĝ(i)(x)

Dn+1 = Dn × D, n > 0.

Map k is one-to-one corresponded to g. All this function
value notation is not categorical notation. Nevertheless we are
to say that there is a one-one correspondence via ˆ· between
maps g : Env × Dx → Dy and maps k : Env → (Dx →
Dy ).

A product is equipped with the special maps
F st : Dy × Dx → Dy ,
Snd : Dy × Dx → Dx ,

This correspondence comes down to the following two equations:
which are the projections. As usually, mere existence of maps F st
and Snd does not characterize Dy × Dx as a product. In addition
we assume that there is a chosen pairing operation < f, g > on
maps such that types are assigned by the rule:

ε ◦ (ĝ × idDx ) =
ε ◦ (k × idDx ) =

where (· × ·) means a functor product, or, in the neutral to domains
form,
ε◦ < ĝ ◦ F st, Snd > = g,
ε◦ < k ◦ F st, Snd > = k,

f : Env → Dy , g : Env → Dx
< f, g >: Env → Dy × Dx

where < · ◦ F st, Snd > is the same as (· × idDx ).
The notation is now wholly categorical and not so suitable. The
more sense is added by the language of functors.

The additional property of F st, Snd and < ·, · > under composition is assumed:
F st◦ < f, g > =
Snd◦ < f, g > =
< F st ◦ h, Snd ◦ h > =

g,
k,

f,
g,
h,

2.1.4

where f, g are typed as above, and

A system of types within cartesian closed category

Now we give a brief sketch of viewing the cartesian closed category
(c.c.c.) as a system of types.

h : Env → Dy × Dx

Theory of functions. Each c.c.c represents a theory of functions.
One-to-one correspondence. It means that there is a one-one
correspondence between the pairs of maps f, g and the map h
into the product.

Maps. The maps in the category are certain special functions
that are used to express the relations between the types (the
domains of the category).
118

Products. In order to be able to deal with multi-ary functions,
we assume we can form and analyze products.

At this stage we are to compare the properties of the domains Dx ,
Dx,Old , Dx,New :

Function spaces. In order to be able to work with transformations of arbitrary functions (arbitrary within the theory) we
assume we can form function spaces. Note, that the higher
types enter the theory, e.g., as the sequence of domains:

(1) Dx is an unrestricted range for free variable x;
(2) Dx,Old is some existing (i.e., before evaluation) restriction of
Dx ;
(3) Dx,New differs from Dx,Old exclusively in a point x.

D, (D → D), ((D → D) → D), . . . .

All of this could be implemented in a particular kind of U pdatex ,
which would be referred as substitution, or Substx :

Operations ε and ˆ·. To be able really to view these domains as
function spaces, certain operations, ε and ˆ·, with characteristic
equations have to be laid down.

Substx : EnvOld × Dx → EnvNew .

Cartesian closed category. C.c.c is a theory of functions, and
the higher type functions are included. Hence, the theory of
c.c.c’s is the theory of types. It is only one such theory.

The description of its behavior by the elements gives the following:

‘Bigger’ theories. ‘Bigger’ theories could be obtained by demanding more types, e.g., by axiomatizing coproducts (disjoint sums) and Dx + Dy

where d ∈ Dx , i ∈ EnvOld , and i(d/x) ∈ EnvNew . [Here: the
new instance i(d/x) of environment is the same as its old instance i
excepting the point x, which is replaced by d.]
One could imagine that there is a pointer from ‘x’ to its possible
values ‘d’.

Substx : [i, d] 7−→ i(d/x) ,

Type [ ]. We could throw in type [ ] of propositions so that higher
types like (Dn → [ ]) correspond to n-ary predicates.

3

3.2

Environment and an access to values

Viewing Substx as a pointer

Now we discuss the possibility to construe a pointer to the partitions of an environment. At first, we would try the equation

To build the typed language we need to think of the values of the
variables. The values of the variables are available via access functions from an environment Env. The representation of an environment is given by the domains Dy , Dx , . . . which are ranges of
possible values of y, x, . . .. The domains Dy , Dx give the explicit
part of an environment Env, and its implicit rest E, not be detailed
for current consideration, is separated from Dy , Dx :

Substx

= F st × idDx
= < F st ◦ F st, idDx ◦ Snd >
= < F st ◦ F st, Snd >,

where F st × idDx is a functor product, < F st ◦ F st, Snd > its
linear notation, and

Env = (E × Dy ) × Dx

Substx : EnvOld × Dx → EnvNew

3.1

Updating an environment

for Env = (E × Dy ) × Dx .
The functor product when being applied to ordered pair generates an access separately to the first and to the second its members.
This feature makes it possible to bring in the following maps as the
pointers to the partitions of the environment.

Whenever we want to update Env the restriction is imposed to its
counterparts:
Env = Implicite part × Explicite part,
e.g.,

Pointer to the part independent on ‘x’. This is a composition
of F st’s which ranges the product E × Dy , i.e. and implicit –
and independent, – part of the environment:

Env = E × Dx
with ‘E’ for implicit part and ‘Dx ’ for explicit part.
In fact, within Env we have an ‘old’ value of x which ranges
Dx,Old , and E which does not depend on x. The description of
updating an environment Env has to include both its explicit part
Dx and implicit rest E. An outline of updating process is given
below.

F st ◦ F st : EnvOld × Dx → E × Dy
Pointer to the part of new values for ‘x’. This is a second
projection Snd which ranges over the desired domain Dx :
Snd : EnvOld × Dx → Dx,New

Step 1: Building the old environment. To combine EnvOld
we construe the product

Coupling the new environment. Now we generate an access
to the new environment. Taking into account the pointers for
both the partitions, we need to construe their couple to obtain
the pointer to the new environment:

EnvOld = E × Dx,Old .
Step 2: Bringing in a range of values. The product of EnvOld
and Dx is generated as

< F st ◦ F st, Snd >: EnvOld × Dx → EnvNew

EnvOld × Dx = (E × Dx,Old ) × Dx .

Getting started with a new environment

Step 3: Establishing an U pdate-function. The An U pdatex
function is established to enable the transformation from
EnvOld to EnvNew :

EnvNew = (E × Dy ) × Dx,New ,
we can evaluate the arbitrary functions. The process of extracting
the pointers to Dy , Dx,New and generating the values from Dy′
whenever Dy = (Dy′ )Dx (= Dy′ → Dx ), i.e. for the function
space Dy , comes down to the following steps.

U pdatex : (E × Dx,Old ) × Dx → E × Dx, N ew,
or,
U pdatex : EnvOld × Dx → EnvNew .

119

Encapsulatea
i(a/a) ✛

ˆg × id{a}

ˆg

❄

1{a} ✛

F st

g

[i, a]

✲a

Encapsulatea
(E × {a}) ✛

❃
✚
✚
✚

ε ✚

✚
❄ ✚

❄
DaDa

[1{a} , a]

Figure 1: Encapsulation of a constant a (Notations and explanation: i is an instance of environment Env, thus i ∈ Env; i(a/a) means
the instance of environment which captured the constant a, also means the
substitution of domain for a by a; a closure 1{a} (identity map as a canonical evaluation) for the evaluated constant is generated; whenever a closure
is not the identity map then the constant is not canonically evaluated. As
may be shown, the map g is equal to 1{a} ◦ Snd.)

❄

✚
✚

[DaDa , {a}]

tion: Da is a range of a-compatible objects, i.e. those with the same type;
for simplicity assume Da = {a}; singleton {a} is the encapsulated constant. The map Encapsulatea builds a renewed environment by setting
up the product of implicit partition of the environment with the singleton
{a}.)

naturally reflects the ranges, and Da is a range of a-compatible objects, i.e. those with the same type. For simplicity we assume
Da = {a}, and this singleton {a} is the encapsulated constant.
The map Encapsulatea builds a renewed environment by setting
up the product of implicit partition of the environment with the singleton {a}.

Snd ◦ F st : EnvNew → Dy
Step 2: Access to Dx.New . An effect of applying Snd to
EnvNew gives the pointer

3.4

Building a pointer to values

3.4.1

Snd : EnvNew → Dx,New

Evaluation of a variable

For single free variable the element-wise reasons for the evaluation
are described by the commutative diagram in Figure 3. To read this
diagram we use the additional notations: d ∈ Dx for an element
being substituted; 1Dx : Dx → Dx for an identity map.
We try to ‘solve’ this diagram relatively g and Substx .

(Dy′ )Dx

Step 3: Coupling an access to
for Dy =
by ε.
We take the subpartitions of EnvNew as above and restore the
pointer:
< Snd ◦ F st, Snd >: EnvNew → ((Dy′ )Dx × Dx,New )

Solution for g. For every i ∈ Env the maps

taking in mind that ε : (Dy′ )Dx × Dx,New → Dy′ .

ˆg(i) : Dx → Dx ;
ˆg(i) : d 7→ d,
ˆg : Env → (Dx → Dx );
ˆg : i 7→ 1Dx ,
g : Env × Dx → Dx ;
g : [i, d] 7→ d

(Dy′ )Dx

Now we are able to take a function f from
and the argument d from Dx,New and apply f to d using ε. Thus, the equation
ε[f, d] = f (d) is valid giving rise to the values f (d) from Dy′

3.3

❃
✚
✚
✚

Figure 2: Environment of encapsulation (Notations and explana-

Step 1: Access to Dy . We take the first partition (F st)
of EnvNew and after that construe the pointer to its second
(Snd) partition:

Dy′

✛

F st

✲ {a}

ε ✚

ˆg × id{a}

ˆg

g

(E × Da ) × {a}

are valid, hence the following is a ‘solution’:
g = Snd .

Encapsulation of an object

In particular, an evaluation process may result in capturing the object being evaluated by an environment.

The value of a free variable is represented by an identity map.
Note that this diagram corresponds to some idea of closure:
free variable is supposed to be closed under the environment
of its evaluation.

Lemma 3.1 (Citation) For any given environment Env = (E ×
Dy )×Dx and the domain Dy = (Dy′ )Dx the constant c ∈ Dx and
the function constant f ∈ Dy are described by the mapsˆ(1{c} ◦
Snd) andˆ(f ◦ Snd) respectively.

Solution for Substx . For every i = [e, x] from ‘old’ environment the map Substx gives [e, d] as an instance of ‘new’ environment:
Substx : [[e, x], d] 7→ [e, d],

Proof. For any given instance i ∈ Env, e.g., i = [[e, y], x] whenever x, d ∈ Dx , y, f ∈ Dy then:
(1)ˆ(1{c} ◦ Snd) i c = (1{c} ◦ Snd)[i, c] = 1{c} c = c.
(2)ˆ(f ◦ Snd) i d = (f ◦ Snd)[i, d] = f (d).
Thus, this proof is straightforward and elementary.
Canonical evaluation of a constant is according the commutative diagram in Figure 1. The reasons are as follows. Let i be an
instance of environment Env, thus, i ∈ Env. Each occurrence of
‘a’ canonically is replaced by the same ‘a’, i.e. i(a/a) means the
instance of environment which captured the constant a, also means
the substitution of domain for a by a. We need a closure to trigger
the evaluation process, and 1{a} (identity map as a canonical evaluation) for the evaluated constant is generated. Roughly speaking,
this identity map evaluates a constant and whenever a closure is not
the identity map then the constant is not canonically evaluated.
Now we describe the evolution of an environment when encapsulation of the constant occurs. The environment in Figure 2 is
treated as the cartesian product of the range domains. The notations

hence,
Substx =< F st ◦ F st, Snd > .
Therefore, the ‘solution’ of diagram in Figure 3 for g and
Substx in case we evaluate a single free variable is given by
diagrams in Figure 4 and in Figure 5.

3.4.2

Evaluation of a constant function

Evaluation of a constant function gives the most typical sample to
encapsulate the object of general nature. To observe the effects we
describe an applying of the constant function to the argument. All
the counterparts - both function and argument, - from the category
theory view are the objects.
The environment is changed whenever the application of the
function f to the argument x occurs, i.e. the triggering event is
120

[f, d]

ε✲
❅
f (d)
[f, d]
ε
❅
✁✕ ✻
✻
ˆgf × 1Dx
❅
✁
ˆ
g
×
1
D
f
x
❅
❘
❅
gf ✁
gf
✁
✲
[i, d]
f (d) f (d)
✁
(b)
✻
✁

✻

i(d/x) ✛

Substx

ˆg

❄

1Dx ✛

F st

g

✲d
❃
✚
✚
ε ✚✚
ˆg × idDx
✚
❄ ✚
[i, d]

[i, d]

f
[i, d]

[1Dx , d]

ˆgd × 1Dx

gd

✲ d
d
✒
(c)

ε

(a)

f

❆

gd ❆
ˆgd × 1Dx

❄

Figure 3: Substitution of a variable (Notations and explanation: d ∈
Dx an element being substituted; 1Dx : Dx → Dx is an identity map.
In evaluation of a variable the most important is its substitutional property.
The closure for a variable is generated resulting in its image 1Dx .)

❆

❆
❆❆❯
ε✲
d

❄

[1Dx , d]

[1Dx , d]

(abc)

Figure 6: Evaluation of a constant function (Explanation: this com-

F st × idDx
i(d/x) ✛

❄

1Dx ✛

F st

✲d
❃
✚
✚
✚
ε ✚
✚
❄ ✚

[i, d]

ˆSnd × idDx

ˆSnd

mutative diagram reflects a natural idea of the function constant, i.e. the
evaluated map does not depend on an environment. A diagram to evaluate
its argument variable is similar to diagram in Figure 3. The diagram (a) is
a commutative-style description of evaluating the argument of the function
f . The diagram (b) escribes the intuitive reasons to observe f as a function
constant which results in f (d), the value of f in a point d. The diagram (c)
determines f as the valid map. An assembling diagrams (a), (b), and (c)
gives the commutative diagram (abc). All the diagrams contain the parameters gf , gd which are to satisfy the commutative law. Thus, the ‘solution’
of diagram (abc), if exists, relatively gf , gd generates the pointers to access
an environment.)

Snd

(f x), or similarly, f (x). In the environment an evaluation is triggered whenever the value of argument ‘d’ is passed to ‘x’.
The following Theorem 3.1 reflects the computational ideas in
use.

[1Dx , d]

Figure 4: Pointers for a variable (Notations and explanation: an environment i(d/x) is the same as environment i excepted point x which is
replaced by d. In case of evaluating a single free variable, map ‘g’ from the
diagram in Figure 3 is to be replaced by the pointer Snd.)

Theorem 3.1 (Citation of the function) (1) The equation
f ◦ (ε◦ <ˆgd × idDx >

=

ε◦ <ˆgf × idDx >

describes the object f as a functional constant parameterized by gd
and gf .
(2) The equation in (1) has the solution
gd
gf

1Dx ◦ Snd,
f ◦ Snd,

=
=

thus, the pointers to an environment are generated.
F st × idDx
EnvNew ✛

EnvOld × Dx,New

ˆSnd × idDx

ˆSnd

❄

DxDx ✛

F st

❄

Proof. (1) The equation above is commented as follows:

Snd ✲
Dx

❃
✚
✚
✚
ε ✚
✚
✚

Left part:
f ◦(ε◦ <ˆgd × idDx >

|

{z

}

eval of ‘x’ within env
‘i’ when actual parameter ‘d’ is passed to argument ‘x’

[DxDx , Dx,New ]

Figure 5: Partitioning an environment Env (Explanation: this diagram is expansion of the element-wise commutative diagram in Figure 4 to
the corresponding domains.)

Right part:
ε◦ <ˆgf × idDx >

|

{z

}

eval
of ‘f x’ within env ‘i’
when actual parameter ‘d’ is passed to argument ‘x’

The premise of the sentence is described by the commutative diagrams (a), (b), and (c) in Figure 6. The equation is valid due to
the existence of commutative diagram (abc), thus the conclusion is
valid.
(2) The existence of the pointers is due to Lemma 3.1. Hence,
the commutative diagram in Figure 7 gives the needed pointers.
121

✲ f (d)
✸ ✻
✑✑
✻
f ◦ Snd ✑
✑
✑
✑
✑
✑
✑

[f, d]
ˆ(f ◦ Snd) × 1Dx

[i, d]

ε

[HLW95] A.H.M. ter Hofstede, E. Lippe, and Th.P. van der Weide.
A Categorical Framework for Conceptual Data Modeling: Definition, Application, and Implementation.
Technical Report CSI-R9512, Computing Science Institute, University of Nijmegen, Nijmegen, The Netherlands, November 1995.

f

[Hoa89]

C.A.R. Hoare. Notes on an Approach to Category Theory for Computer Scientists. In M. Broy, editor, Constructive Methods in Computing Science, volume 55 of
NATO Advanced Science Institute Series, pages 245–
305. Springer-Verlag, 1989.

[IP94]

ble solutions of the diagrams in Figure 6 relatively the parameters gf and
gd . Thus, the parameter gd is replaced by 1Dx ◦ Snd,ˆgd byˆ(1Dx ◦ Snd),
gf by f ◦ Snd, andˆgf byˆ(f ◦ Snd).)

A. Islam and W. Phoa. Category Models of Relational
Databases I: Fibrational Formulation, Schema Integration. In M. Hagiya and J.C. Mitchell, editors, Theoretical Aspects of Computer Software, International
Symposium TACS’94, volume 789 of Lecture Notes in
Computer Science, pages 618–641, Sendai, Japan, April
1994. Springer-Verlag.

[Jac91]

B.P.F. Jacobs. Categorical type theory. PhD thesis, University of Nijmegen, Nijmegen, The Netherlands, 1991.

4

[JD93]

M. Johnson and C.N.G. Dampney. Category theory and information system engineering. In Proceedings of the Third International Conference AMAST’93
on Algebraic Methodology and Software Technology,
Workshops in Computing, pages 95–103, University
of Twente, Enschede, The Netherlands, June 1993.
Springer-Verlag.

[KC93]

S.-K. Kim and S. Chakravarthy. An interpretation
and implementation of temporal databases with twodimensional time. Technical Report UF-CIS-TR-93030, University of Florida, Department of Computer
Science, September 1993.

[LH96]

E. Lippe and A.H.M. ter Hofstede. A Category Theory Approach to Conceptual Data Modeling. RAIRO
Theoretical Informatics and Applications, 30(1):31–79,
1996.

[Oli94]

A. Oliart. An algorithm for inferring quasi-static types.
Technical report, 111 Cummington St. Boston. MA
02215 USA, December 1994.

[Sza78]

M.E. Szabo. Algebra of proofs. North-Holland, 1978.

[Tui94]

C. Tuijn. Data Modeling from a Categorical Perspective. PhD thesis, University of Antwerp, Antwerp, Belgium, 1994.

ˆ(1Dx

◗
◗ 1Dx ◦ Snd
◗
◗
◗
◗
◦ Snd) × 1Dx
◗
◗◗
❄
s
ε
✲
[1Dx , d]

d

Figure 7: Pointers to access the environment with a constant
function (Explanation: this commutative diagram gives one of the possi-

Conclusions

A common object technique equipped with the categorical and
computational styles is outlined. As was shown, an object can be
represented by embedding in a host computational environment.
An embedded object is accessed by the laws of the host system. A
pre-embedded object is observed as the decomposition into substitutional part and access function part which are generated during
the object evaluation. They assist to easy extract of the result.

Acknowledgements
The author is indebted to Institute for Contemporary Education
“JurInfoR-MSU” for stimulating the research.

References
[AGN95] A. Asperti, C. Giovannetti, and A. Naletto. The
Bologna optimal higher-order machine. Technical Report UBLCS-95-9, University of Bologna, Department
of Computer Science, March 1995.
[BSW94] K. Baclawski, D. Simovici, and W. White. A categorical
approach to database semantics. Mathematical Structures in Computer Science, 4:147–183, 1994.
[Cor89]

T. Corbi. Program understanding: Challenge for the
1990s. IBM Systems Journal, 28(2):294–306, 1989.

[CW85]

L. Cardelli and P. Wegner. On understanding types, data
abstractions, and polymorphism. Computing Syrveys,
17(4), December 1985.

[EWH85] R. Elmasri, J. Weeldreyer, and A. Hevner. The category
concept: An extension to the entity-relationship model.
Data & Knowledge Engineering, 1:75–116, 1985.
[Gil87]

J. P. Gilbert. Polyview: An Object Oriented Data Model
for Supporting Multiple User Views. PhD thesis, University of California, 1987.

[HLF96] A.H.M. ter Hofstede, E. Lippe, and P.J.M. Frederiks.
Conceptual Data Modeling from a Categorical Perspective. The Computer Journal, 39(3):215–231, August
1996.
122

