5 .Nd the Slate programming language, an interactive object-oriented programming
6 language and environment
10 .Op Fl mo Ar OldGenerationBytes
11 .Op Fl mn Ar NewGenerationBytes
14 .Ar image-argument ...
18 Slate is Copyright (C) 2002-2009 by Timmy Douglas, Lee Salzman, and Brian T. Rice
21 Slate is a dynamic, object-oriented programming language and live-object
22 programming environment that is flexible enough to fit many different styles of
25 Slate's implementation is clean, modular, and highly portable, relying only on
26 .St -ansiC language features.
28 The Slate Programmer's Reference Manual describes the syntax and semantics of
29 the language and the standard core libraries in detail, and provides an index
30 of major common features. Slate documentation may be found via the
31 .Sx "INTERNET RESOURCES"
32 section below, or installed locally with a standard binary package.
34 Slate's core features (there are many more):
37 Slate is implemented with an interactive listener that takes expressions
38 dynamically. Compilation does not interrupt interactions and is quick.
40 Slate works with worlds of living objects called
42 which can be snapshot, saved, and restarted transparently for the programs
44 .It Sy "Declarations Optional"
45 Slate programs do not need to be explicitly typed, even though objects know
48 Everything in Slate is an object, and the system is designed to be more generic
49 than its predecessors about objects.
50 .It Sy "Object creation from prototypes"
51 Each object is a dynamic template for creating more objects, not just static
52 classes. Objects are also self-describing.
53 .It Sy "Multiple Dispatch"
54 Methods and operators can be specialized on any argument.
57 .Bl -tag -width 8n -compact
58 .It Fl mo Oo GB|MB|KB Oc
59 Sets the amount old memory for tenured/old objects (Default 400MB)
60 .It Fl mn Oo GB|MB|KB Oc
61 Sets the amount of new memory for young/new objects (Default 10MB)
63 Requests to the image heap to print out the command options that it
64 handles. This is done after the slate image is loaded.
66 Starts Slate and immediately executes the source in the given file before
68 .It Fl -eval Ar expression
69 Executes the given expression when starting, once any load has completed.
71 Other helpful information and examples can be found in
72 .Pa ${prefix}/doc/slate .
74 .Bl -tag -width "1234567890123" -compact
75 .It Pa ${prefix}/bin/slate
76 Recommended location of the Slate virtual machine.
77 .It Pa ${prefix}/share/slate/
78 Recommended location of the default Slate object images, namely
82 .It Pa ${prefix}/share/slate/src/
83 The standard library sources.
86 Slate is stable and regularly tested, but changing rapidly. The
88 file in the Slate source distribution lists open issues.
89 Reporting bugs is usually done via mailing list or IRC. Response is usually
90 quick. You can meet many of the contributors in
92 on the Freenode network.
94 .An "Timmy Douglas" Aq slate@timmy.tmbx.com
96 .An "Brian T. Rice" Aq briantrice@gmail.com
97 .An and many contributors.
98 .Sh INTERNET RESOURCES
100 .Sy http://www.slatelanguage.org/
102 Slate is distributed freely under the Open Source MIT Public License. See
104 in the Slate source distribution.