CIS
LECTURE 21
Chapter
11 in Sebasta, »page 435
Object
oriented languages
polymorphism
º object free to respond to a message in
appropriate fashion
By
pointing to a base class you can point to anything derived from that base class
(explicit
vs. implicit type casting)
uses
dynamic type binding, (very difficult to type check)
Virtual
methods:
Not
known at run time
Chapter
9, sub-programs
Programming
language implementation
3
ways to use computer memory:
1)
Static
languages, (Fortran/ Cobol), all memory usage known at translation
2)
Stack
based languages, (Algol 60/ Pascal), recursion allowed, activation records can
be created indefinitely
3)
Dynamic,
(Lisp/ APL/ Prolog), heap based memory usage
Unit-procedure/function
procedure®code segment + data segment, (both local and
non-local variables)
Non-local
references:
1)
Explicit
common, (shared data area)
2)
Import/export
3)
Static
scope, (lexical position)
4)
Dynamic
scope, (last association)
Fortran
structure, (static):
History
sensitivity is possible in Fortran
Algol-like
structure:
Activation stack:
3
types of variables
1)
Static
variable
2)
Semi-dynamic
variable
3)
Fully
dynamic variable, (amount of storage may change during execution), store a base
address to heap, i.e.:
[1:n] int a