<< Prev | - Up - |
The most unusual thing about the syntax is the choice of curly braces for procedure application. Once you get used to that you can be rather comfortably puzzled by other things.
Yes, Oz has automatic garbage collection (2 space copying GC). For open distributed computing applications, it also implements automatic distributed GC, but, at present, not all distributed cyclic datastructures can be collected successfully.
Multi-paradigm programming is the freedom to choose and mix programming paradigms according to your tastes and needs. Unlike most other programming languages which lock you into a single programming paradigm, Oz unifies into one simple and coherent framework the functional, object-oriented, and logic flavors of programming. This is possible due to the very general and powerful underlying paradigm of concurrent constraint programming.
Yes, Oz supports the class/instance model for object-oriented programming. A class is created e. g. as follows:
declare
class Foo
attr val
meth init(V) val:=V end
meth show {Show foo(val: @val)} end
end
An instance is created using procedure New
applied to class Foo
and initial message init(12)
for example:
declare O = {New Foo init(12)}
Object O
can be applied to message show
as follows:
{O show}
which, in this case causes foo(val: 12)
to be printed.
A point of terminology: we speak of object application rather than of message sending.
[]
not the empty list$
marker,
marker<< Prev | - Up - |