Oz Language Specification

Bob Calco bobcalco at tampabay.rr.com
Wed May 23 13:29:55 CEST 2007


Anyone:

Aside from the source code ;) is there interest in putting together a  
formal language specification that someone wishing to port Oz to  
another platform--in particular, say, .NET or Java--would adhere to?

I am motivated to undertake such a task--first, create the formal  
language specification, and second to port it to .NET.

Another variant of this idea that I am considering is to create a new  
language based on Oz but with a syntax more familiar to commodity  
programmers, such as VB. Where I work now there are some 300 VB  
developers. My role is domain architect in charge of application  
design and frameworks. This is the source of my motivation.

For example, consider the following snippet from Denys' NLP book:

declare X0 X1 X2 X3 in
{Browse [X0 X1 X2 X3]}
thread
    local Y0 Y1 Y2 Y3 in
       {Browse [Y0 Y1 Y2 Y3]}
       Y0 = X0 + 1
       Y1 = X1 + Y0
       Y2 = X2 + Y1
       Y3 = X3 + Y2
       {Browse completed}
    end
end
X0 = 1
X1 = 2
X2 = 3
X3 = 4

This would translate to the following VB-like syntax in my imaginary  
language:

Dim
    X0, X1, X2, X3 As Dataflow
In
    Browse({X0,X1,X2,X3})
    Thread
       Dim
          Y0, Y1, Y2, Y3 As Dataflow
       In
          Browse({Y0,Y1,Y2,Y3})
          Y0 = X0 +1
          Y1 = X1 + Y0
          Y2 = X2 + Y1
          Y3 = X3 + Y2
          Browse("completed")
       End Scope
    End Thread
End Scope
X0 = 1
X1 = 2
X2 = 3
X3 = 4

With .NET's DLR more or less lighting a way for dynamically typed  
languages to be ported to the CLR, a fact in which I have recently  
taken great interest, I would very much like to see Oz's multi- 
paradigm programming concepts, and especially it's concurrent  
programming, constraint programming, and network transparency  
capabilities, take hold in the .NET universe that is currently my  
daily bread.

Sincerely,

Bob Calco


More information about the mozart-hackers mailing list