210 likes | 384 Views
Oberon. Oral Exam English. index. The creator The history The use The syntax An example Conclusion. The creator - Niklaus Wirth. Swiss computer scientist born February 1934 Academic history Electronics Engineering (ETH in Zürich) Master degree from Laval University , Canada
E N D
Oberon Oral Exam English
index • The creator • The history • The use • The syntax • An example • Conclusion
The creator - Niklaus Wirth • Swiss computer scientist • born February 1934 • Academic history • Electronics Engineering (ETH in Zürich) • Master degree from Laval University , Canada • Ph.D from University of California Berkeley
The creator - Niklaus Wirth • Assistant professor Comp Science at Stanford University and University of Zürich • Prof Informatics at ETH Zürich • Chief designer of Algol W, Pascal, Modula, Modula-2, and Oberon
history • ALGOL – 60’s • Pascal – 70’s (first OO) • Modula / Modula-2 –- 80’s (Modules) • Oberon / Oberon-2 –- 80’s-90’s (OO)
The use • Pascal’s syntax, style • More power • Very clear structure • Object-Oriented • 20 years experience • Executable problem • Used for teaching
Case sensitive Line end ; Comment (* *) MODULE Hello; (* first program *) IMPORT Out; PROCEDURE Do* BEGIN Out.String(“Hello”); Out.Ln; END Do; END Hello; The syntax - introduction
MODULE Hello; (* first program *) IMPORT Out; PROCEDURE Do* BEGIN Out.String(“Hello”); Out.Ln; END Do; END Hello; MODULE PROCEDURE BEGIN END predefined words The syntax – Programme Structure
Predefined section Marked by “VAR” Varname : TYPE; Assignment operator := constants in “CONST” section PROCEDURE Vartest* CONST numb = 6; VAR a : INTEGER; b : REAL; c : REAL; BEGIN a := 3; c := numb*a; Out.Real(c); Out.Ln; END Vartest; The syntax – VAR & CONST
The syntax - Datatypes • BOOLEAN TRUE / FALSE • CHAR ASCII • SHORTINT -128...127 • INTEGER -32768...32767 • LONGINT -2E+9...2E+9 • REAL -3,4E+38...3.4E+38
WHILE WHILE (var1 < 3) DO var2 := var2 + 1; END; REPEAT REPEAT var2 := var2 + 1; UNTIL (var1 < 3); LOOP LOOP var2 := var2 + 1; EXIT; END; IF IF (var1 = 3) THEN Out.String(“Hurray”); ELSE Out.String(“Booh”); END; CASE CASE var1 OF 1 : Out.String(“1”); | 2 : Out.String(“2”); | 3 : Out.String(“3”); ELSE Out.String(“none”); END; The syntax – Loops / Conditions
Example – GFX engine • Very powerful language • Example : my GFX engine • 5 months experience in Oberon • No other programming background • Many GFX possibilities
Example – GFX engine • Dynamic 3D Object • Rendered by Oberon • Backface culling • Z-buffer • Shading
Conclusion • Structured, Compact, Powerful • Many possible compilers • Downside : Executable files • Used for teaching
Thank you for your attention Any questions?