-
-
Notifications
You must be signed in to change notification settings - Fork 84
/
oberon.scroll
151 lines (126 loc) · 6.22 KB
/
oberon.scroll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import ../code/conceptPage.scroll
id oberon
name Oberon
appeared 1986
creators Niklaus Wirth
tags pl
website http://www.projectoberon.com/
fileType text
documentation https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf
faq http://www.projectoberon.net/txt/FAQ.txt
centralPackageRepositoryCount 0
country Switzerland
originCommunity Eidgenössische Technische Hochschule Zürich
projectEuler Oberon
memberCount
2019 2
2022 3
rijuRepl https://riju.codes/oberon
example
MODULE Main;
IMPORT Out;
BEGIN
Out.String("Hello, world!");
Out.Ln;
END Main.
subreddit https://www.reddit.com/r/Oberon
memberCount
2022 289
leachim6 Oberon
filepath o/Oberon.o
fileExtensions o
example
MODULE HelloWorld;
IMPORT Out;
BEGIN
Out.Open;
Out.String('Hello World');
END HelloWorld.
multiLineCommentTokens (* *)
printToken Out.String
assignmentToken :=
stringToken '
hasPrintDebugging true
hasPointers true
hasMultiLineComments true
(* A comment
*)
hasComments true
(* A comment
*)
hasSemanticIndentation false
hasAssignment true
hasStrings true
'Hello world'
wikipedia https://en.wikipedia.org/wiki/Oberon_(programming_language)
example
MODULE Rectangles;
IMPORT Figures;
TYPE
Rectangle* = POINTER TO RectangleDesc;
RectangleDesc* = RECORD
(Figures.FigureDesc)
x, y, w, h : INTEGER;
END;
PROCEDURE Draw* (r : Rectangle);
BEGIN
(* ... *)
END Draw;
(* Other procedures here *)
PROCEDURE Handle* (f: Figure; VAR msg: Figures.Message);
VAR
r : Rectangle;
BEGIN
r := f(Rectangle);
IF msg IS Figures.DrawMsg THEN Draw(r)
ELSIF msg IS Figures.MarkMsg THEN Mark(r)
ELSIF msg IS Figures.MoveMsg THEN Move(r, msg(Figures.MoveMsg).dx, msg(Figures.MoveMsg).dy)
ELSE (* ignore *)
END
END Handle;
PROCEDURE New* (VAR r : Rectangle);
BEGIN
NEW(r);
Figures.Init(r, Handle);
END New;
END Rectangles.
related modula-2 oberon-2 zonnon go nim algol euler pascal modula ada linux solaris lex yacc x86-isa obliq visual-studio-editor
summary Oberon is a general-purpose programming language created in 1986 by Niklaus Wirth and the latest member of the Wirthian family of ALGOL-like languages (Euler, Algol-W, Pascal, Modula, and Modula-2). Oberon was the result of a concentrated effort to increase the power of Modula-2, the direct successor of Pascal, and simultaneously to reduce its complexity. Its principal new feature is the concept of type extension of record types: It permits the construction of new data types on the basis of existing ones and to relate them, deviating from the dogma of strictly static data typing. Type extension is Wirth's way of inheritance reflecting the viewpoint of the parent site. Oberon was developed as part of the implementation of the Oberon operating system at ETH Zurich in Switzerland. The name is from the moon of Uranus, Oberon. Oberon is still maintained by Wirth and the latest revision is dated May 3, 2016.
pageId 22496
dailyPageViews 100
created 2001
backlinksCount 128
revisionCount 388
appeared 1986
hopl https://hopl.info/showlanguage.prx?exp=1415
tiobe Oberon
domainName projectoberon.com
registered 2011
awisRank
2022 6362528
isbndb 0
indeedJobs applescript engineer
2022 0
semanticScholar 21
year|title|doi|citations|influentialCitations|authors|paperId
1988|The programming language oberon|10.1002/spe.4380180707|242|19|N. Wirth|0648b884fc979f8d4e4a620193f855f173a89a74
1988|From modula to oberon|10.1002/spe.4380180706|63|4|N. Wirth|d71f6af965cef1f53e9026bb54a55d71d7aa1453
1997|The Formal Specification of Oberon|10.3217/jucs-003-05-0443|29|0|P. Kutter and A. Pierantonio|702fef24576704bd12aa6a7983b5543f9ba15f84
1992|The Oberon System family|10.1002/spe.4380251204|21|1|M. Brandis and R. Crelier and Michael Franz and J. Templ|0ce78acb2c8e53859a41238a0c09bc475a59b65f
1997|Do the Fish Really Need Remote Control? A Proposal for Self-Active Objects in Oberon|10.1007/3-540-62599-2_41|14|1|J. Gutknecht|7a1834c14d7dd5a0ec4bf9e570f08c5ad62803cc
1987|From Modula to Oberon and the programming language Oberon|10.3929/ETHZ-A-005363226|14|1|N. Wirth|a0d4be2f56438ca59033cfd826a04a334ebfa647
2007|Modula-2 and Oberon|10.1145/1238844.1238847|11|1|N. Wirth|6611c2c376d85397a7020885a35c3ade9b689a18
1996|Dynamic semantics of the Oberon programming language|10.3929/ETHZ-A-004292949|10|1|P. Kutter|5327cc1e0fde395ded437974e1836e9b74d09c45
1997|An Object-Oriented Database Programming Environment for Oberon|10.1007/3-540-62599-2_32|9|0|Jacques Supcik and M. Norrie|7c24291fbcb7e132fa343540050438cc379b1cb4
1991|Differences between Oberon and Oberon-2|10.3929/ETHZ-A-000589808|6|0|H. Mössenböck and N. Wirth|4fe362c41f9e39756d51bdeb19efc356d599d3e7
1994|On the Essence of Oberon|10.1007/3-540-57840-4_39|6|0|D. Naumann|34a315fadd302899d9796b41d48bcf04f598ccb9
1990|Programming without enumerations in Oberon|10.1145/382076.382642|5|1|Charles Lins|d9ff19e9616698d5950350379c00b7b138117f32
1993|A voyage to Oberon|10.1145/165408.165412|2|0|A. Radenski|b015e8772aa90ee1731deda734b6b8e9a75c158c
1996|A first course in object-oriented programming using Oberon|10.2495/SEHE950401|2|0|V. Mahnic and B. Vilfan|66b8ec6ecefca37ca74b5d5100be699b7c2f6f07
1989|From Modula to Oberon: The programming language Oberon|10.3929/ETHZ-A-000564136|2|0|N. Wirth|073431b262dc897b4b4a2cab8ebe8b2a29feeda7
1996|Combined modelling and simulation of dynamic systems using Oberon|10.1109/CACSD.1996.555318|1|0|M. Kottmann|f095581b91137b1cb0c6a8c8f7e672bead585616
2000|Building Your Own Tools: An Oberon Industrial Case-Study|10.1007/10722581_23|1|0|P. Reed|b8ca106f02e13392418e83b83b7820351065f5cc
1997|Some Experience In Teaching An IntroductoryProgramming Course Using Oberon|10.2495/SQE970031|1|0|V. Mahnic|c12e98e9ac447cf4cb9a56fa2c7b8d1d1346c9e5
1996|Algebraic Semantics of the Oberon Target Machine|10.1007/3-540-62064-8_5|1|0|A. Zamulin|133d0b379533b680b3385cbb255e2034adca789f
1994|Control system design with Oberon|10.1109/CACSD.1994.288919|1|0|Xiaobing Qiu and W. Schaufelberger|370c1df9adf39ecf4b1c4e4d8f20954c5b1cbaea
1994|Is Oberon as Simple as Possible? A Smaller Object-Oriented Language Based on the Concept of Module Type|10.1007/3-540-57840-4_38|1|0|A. Radenski|0184b7b480ae3524825e2260603d7e920a87bf70