Software Engineers Handbook/Language Dictionary/Oz

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Oz[edit | edit source]

<Describe the language, include a brief history if possible.>

Type[edit | edit source]

Multiparadigm; execution is sequential but programming styles could almost hide the sequentiality. Logical or dataflow variables are provided as well as shared mutable multi-assignment variables; however, the syntax for use of those variables differs so as to call attention to which the programmer is using.

Execution Entry Point[edit | edit source]

<Describe how/where the program is started i.e. C++ main()>

General Syntax[edit | edit source]

<Try to give a high level description of the contents of a typical line of code. An assignment example may be appropriate such as

a = b;

>

Comments[edit | edit source]

<Describe and show the syntax for comments such as

// this is an inline comment.  Everything after the // is a comment.

Block comments are specified by a starting /* and ending */ They can span multiple lines.

/*
 * this is a block comment 
 */

>

Variable Declarations[edit | edit source]

<Describe if variable declarations are necessary, and give examples of the different types, such as

declare i as an integer

int i;

two ways to declare i as an integer and give it an initial value of 0

int i = 0;
int i(0);

>

Method Declaration/Implementation[edit | edit source]

<Describe how methods/functions/procedures are declared and implemented.>

Scope[edit | edit source]

<Describe how scope is defined.> There is lexical scoping?

Conditional Statements[edit | edit source]

<Describe the conditional statements in text and present

code examples. 

(put a space in the front of the line to format as code)> "if" and "case" commands are primitively available. Case commands permit decomposition of structures by pattern matching.

Looping Statements[edit | edit source]

<Describe looping statements in English and present code examples.> Built in.

Output Statements[edit | edit source]

<Describe how to output Hello world! including the new-line with or without a carriage return.>

Containers[edit | edit source]

<List containers or references to lists of containers available natively for this language. List ways to incorporate containers if they are not native to the language.>

foo(bar=1, bletch=2)

constructs a transparent data structure. The parts in lowercase are literals.

Algorithms[edit | edit source]

<List algorithms or references to lists of algorithms available natively for this language. List ways to incorporate algorithms if they are not native to the language. Or, if not available, describe that.>

Garbage collection[edit | edit source]

<Describe whether the garbage collection is automatic or manual.> Is automatic.

Physical Structure[edit | edit source]

<Describe how the files, libararies, and parts are typically divided and arranged.> Is developed and executed in an IDE, Mozart. There are tools for modularization and source code management (?).

Tips[edit | edit source]

<Please include tips that make it easier to switch to this language from another language.>

Web References[edit | edit source]

<List additional references on the web. Please include for what level reader the references are appropriate. (beginner/intermediate/advanced)>

Books and Articles[edit | edit source]

<List additional books and articles that may be helpful. Please include for what level reader the references are appropriate. (beginner/intermediate/advanced)> Van Roy and Haridi: Concepts, Techniques and Models of Computer Programming ("CTM").