Information Technology Reference
In-Depth Information
π
ε
and, in essence, adds Dijkstra's display vector components explicitly, an
Algol60-implementation idea not mentioned in [GJSB00] nor in [IgP02].
Instead of semantics we shall study the preprocessor of the new Java-compiler
as described by [IgP02]. The preprocessor performs a denesting
||
of Java-
programs
π
J
.π
J
and
|
π
J
|
have essentially equal formal execution trees; work
in [IgP02] may be considered as (or may be modified towards) a proof of this
fact. If we look closer at a denested Java-program
π
ε
π
ε
|
is essentially a description of how an Algol60-runtime system as in [GHL67]
or [WiM92] is executing an implemented Algol60-program
π
.Thisimpliesthat
π
and
|
|
we see that
|
π
ε
π
ε
|
|
have essentially equal formal execution trees, i.e. that
|
|
is
structurally simulating
π
. A closer discussion is following:
2.5
On Denesting of Algol60-Procedures and Java-Classes
The preprocessor's denesting of Java is quite surprising compared to experiences
in Algol60. For Algol60 we have
Theorem 4:
Algol60 with non-nested procedures has regular formal execution
trees only. Algol60 in general has also irregular ones [Lan73b, Lan74, Old81b].
Consequence: In Algol60 there is no denesting of procedures possible such that
the formal execution trees are essentially equal, i.e. such that original and den-
ested programs are structurally simulating each other. Reason: Algol60 has no
functional results of procedures, there is no partial evaluation, such that den-
ested programs could structurally simulate all programs. [Lan73b,Lan74] define
a slightly generalized language, Algol60-G, which allows partial evaluation in a
restricted form and therefore facilitates denesting (modularizing). Look at pro-
gram example
π
2
as a denested program
π
2
G
and at the associated formal call
tree generated by generalized copy rule applications and ending up with four
nodes as for
π
2
earlier:
{
f(q<g>,false )
proc p(f,g)
}
proc q<g>(r,s)
{
print ( g )
}
p(p,true )
|
|
{
p(q<true > , false )
}
|
|
{
q < true > ( q < false > , false )
}
|
|
{
print ( true )
}
Observe the clarity of acting of Algol60-G even in comparison to Algol60.
Search WWH ::
Custom Search