-
-
Notifications
You must be signed in to change notification settings - Fork 85
/
kaleidoscope.scroll
30 lines (26 loc) · 1.2 KB
/
kaleidoscope.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
import ../code/conceptPage.scroll
id kaleidoscope
name Kaleidoscope
appeared 1994
tags pl
fileType text
centralPackageRepositoryCount 0
country United States
originCommunity University of Washington
wikipedia https://en.wikipedia.org/wiki/Kaleidoscope_(programming_language)
example
always: temperature = mercury.height / scale;
always: white rectangle( thermometer );
always: grey rectangle( mercury );
always: display number( temperature );
while mouse.button = down do
mercury.top = mouse.location.y;
end while;
summary The Kaleidoscope programming language is a constraint programming language embedding constraints into an imperative object-oriented language. It adds keywords always, once, and assert..during (formerly while..assert) to make statements about relational invariants. Objects have constraint constructors, which are not methods, to enforce the meanings of user-defined datatypes. There are three versions of Kaleidoscope which show an evolution from declarative to an increasingly imperative style. Differences between them are as follows.
pageId 4400159
created 2006
backlinksCount 6
revisionCount 19
dailyPageViews 8
appeared 1994
hopl https://hopl.info/showlanguage.prx?exp=2143