smalltalk-tng
view doc/layers.lyx @ 321:c4a0718c2d3c
Sketch of dependencies
| author | Tony Garnock-Jones <tonygarnockjones@gmail.com> |
|---|---|
| date | Sat Oct 08 15:36:03 2011 -0400 (7 months ago) |
| parents | |
| children |
line source
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 221
3 \textclass article
4 \language english
5 \inputencoding auto
6 \fontscheme default
7 \graphics default
8 \paperfontsize default
9 \papersize Default
10 \paperpackage a4
11 \use_geometry 0
12 \use_amsmath 0
13 \use_natbib 0
14 \use_numerical_citations 0
15 \paperorientation portrait
16 \secnumdepth 3
17 \tocdepth 3
18 \paragraph_separation indent
19 \defskip medskip
20 \quotes_language english
21 \quotes_times 2
22 \papercolumns 1
23 \papersides 1
24 \paperpagestyle default
26 \layout Title
28 Layering Functionality in ThiNG
29 \layout Standard
31 To begin with, we're going to have a simple interpreter of ThiNG code.
32 All the advanced features will come in later revisions - we may even bootstrap
33 before we've implemented some of them!
34 \layout Standard
36 The features we're particularly interested in include:
37 \layout Itemize
39 Reflection
40 \layout Itemize
42 Locations
43 \layout Itemize
45 Transactions + Exceptions
46 \layout Itemize
48 Concurrency
49 \layout Itemize
51 Object Orientation
52 \layout Itemize
54 Distribution
55 \layout Standard
57 Reflection comes in three flavours, for ThiNG: behavioural, structural,
58 and lexical.
59 Behavioural reflection will be planned for but not actually implemented
60 in the first few iterations.
61 Structural reflection is a must - generic treatment of objects is required
62 for definition of useful tools such as object explorers etc.
63 Lexical reflection can wait until we need it for transactions and distribution.
64 \layout Standard
66 Locations are important - they are what, in ThiNG, allows access to meta-level
67 facilities.
68 A computation may stop an entire location and (non-locally) return to its
69 creator either a successful result or an exception.
70 The first iterations will have support for locations.
71 \layout Standard
73 Transactions and exceptions are closely related.
74 To begin with, we'll be implementing just exceptions - transactions can
75 wait for proper persistence.
76 Exceptions will be implemented using the rudimentary meta-level location
77 structures we'll require for normal non-local returns.
78 \layout Standard
80 Concurrency will be implemented in the first iterations.
81 A variant on the continuation-passing transform will be used to compute
82 arguments to a message send concurrently.
83 \layout Standard
85 Object-orientation will be implemented in the first iterations, although
86 not in the way we'll ultimately have it.
87 The goal is to have the lookup phase of OO dispatch go via the location
88 (= the meta-object), but for the first few iterations we'll hardcode the
89 lookup.
90 Allowing customisable lookup comes under the category of behavioural reflection.
91 \layout Standard
93 Distributed programming will be supported only once we have the rest sufficientl
94 y pinned down.
95 It depends on lexical reflection.
96 \the_end
