The TOM Tome
Pieter J. Schoenmakers
Programmers Without Deadlines
Eindhoven, the Netherlands
$Revision: 1.24 $
$Date: 2001/04/08 22:04:28 $
Table of Contents
Preface
I.
TOM: The Language
1.
Getting started
1.1.
Hello, world!
1.2.
From source to running program
2.
Expressions
2.1.
Numeric constants
2.2.
Operators
2.3.
Local variables
2.4.
Loops
2.5.
More operators
2.6.
Conditionals
3.
Methods
3.1.
Definitions
3.2.
Tuples
3.3.
Return values
4.
Basic types
4.1.
Numeric types
4.2.
The
boolean
type
4.3.
The pointer type
4.4.
The
selector
type
4.5.
The
void
type
4.6.
The
dynamic
type
4.7.
Object type
4.8.
The
id
type
4.9.
Tuple types
5.
Classes
5.1.
Inheritance
5.2.
Object variables
5.3.
Method overriding
5.4.
Messaging
super
5.5.
Object allocation and initialization
5.6.
Object destruction
5.7.
Polymorphism
5.8.
A class is not atomic
5.9.
Multiple inheritance
5.10.
Special classes
5.11.
Collections
6.
Advanced topics
6.1.
Blocks
6.2.
Conditions
6.3.
Glueing TOM and C
6.4.
Interaction with the Garbage Collector
6.5.
Method forwarding
II.
TOM: The Libraries
7.
The TOM Runtime Library
7.1.
Program startup
7.2.
C names for TOM types
7.3.
Selectors
7.4.
Message dispatching
7.5.
More types
7.6.
Functions
8.
Unit
tom
8.1.
File tom/All
8.2.
File tom/Array
8.3.
File tom/Bag
8.4.
File tom/Block
8.5.
File tom/BucketDictElement
8.6.
File tom/BucketElement
8.7.
File tom/BucketIntDictElement
8.8.
File tom/BucketPDictElement
8.9.
File tom/BucketSetElement
8.10.
File tom/Bundle
8.11.
File tom/ByteArray
8.12.
File tom/ByteStream
8.13.
File tom/ByteString
8.14.
File tom/ByteSubstring
8.15.
File tom/C
8.16.
File tom/CharArray
8.17.
File tom/CharEncoding
8.18.
File tom/CharString
8.19.
File tom/Condition
8.20.
File tom/ConditionClass
8.21.
File tom/Conditions
8.22.
File tom/Cons
8.23.
File tom/Constants
8.24.
File tom/DCons
8.25.
File tom/Date
8.26.
File tom/Descriptor
8.27.
File tom/Dictionary
8.28.
File tom/DoubleArray
8.29.
File tom/EqDictionary
8.30.
File tom/EqHashTable
8.31.
File tom/EqSet
8.32.
File tom/Extension
8.33.
File tom/File
8.34.
File tom/FloatArray
8.35.
File tom/HashTable
8.36.
File tom/Heap
8.37.
File tom/HeapElement
8.38.
File tom/IntArray
8.39.
File tom/IntDictionary
8.40.
File tom/IntegerRangeSet
8.41.
File tom/Invocation
8.42.
File tom/InvocationResult
8.43.
File tom/Limits
8.44.
File tom/Lock
8.45.
File tom/MutableArray
8.46.
File tom/MutableByteArray
8.47.
File tom/MutableByteString
8.48.
File tom/MutableCharArray
8.49.
File tom/MutableCharString
8.50.
File tom/MutableDoubleArray
8.51.
File tom/MutableFloatArray
8.52.
File tom/MutableIntArray
8.53.
File tom/MutableObjectArray
8.54.
File tom/MutablePointerArray
8.55.
File tom/MutableString
8.56.
File tom/Number
8.57.
File tom/ObjectArray
8.58.
File tom/Pointer
8.59.
File tom/PointerArray
8.60.
File tom/PointerDictionary
8.61.
File tom/Queue
8.62.
File tom/Random
8.63.
File tom/RandomDouble
8.64.
File tom/Runtime
8.65.
File tom/Selector
8.66.
File tom/Set
8.67.
File tom/Sorted
8.68.
File tom/State
8.69.
File tom/StreamBuffer
8.70.
File tom/String
8.71.
File tom/StringStream
8.72.
File tom/Thread
8.73.
File tom/Trie
8.74.
File tom/TypeDescription
8.75.
File tom/Unicoding
8.76.
File tom/Unit
8.77.
File tom/XL
8.78.
File tom/archiving
8.79.
File tom/behaviours
8.80.
File tom/coding
8.81.
File tom/collections
8.82.
File tom/config
8.83.
File tom/holes
8.84.
File tom/numbers
8.85.
File tom/streams
8.86.
File tom/unique-strings
9.
Unit
C
9.1.
File C/Math
9.2.
File C/Std
10.
Unit
too
10.1.
File too/AutoLock
10.2.
File too/Connection
10.3.
File too/DescriptorDelegate
10.4.
File too/DescriptorSet
10.5.
File too/PortCoder
10.6.
File too/PortDecoder
10.7.
File too/PortEncoder
10.8.
File too/Proxy
10.9.
File too/RunLoop
10.10.
File too/Timer
10.11.
File too/inet
10.12.
File too/network
10.13.
File too/ports
10.14.
File too/Nameserver
11.
Unit
_builtin_
11.1.
Any
11.2.
Any
III.
Reference
I.
Tools man pages
tesla
— TOM Compiler
tig
— TOM Interface Generator
tug
— TOM Unit Generator
gp
— TOM Parser Generator
tomc
— TOM compiler (older, being replaced by tesla)
IV.
Appendices
A.
TOM makefiles
A.1.
Basics
A.2.
Important macros
A.3.
Targets
A.4.
More macros
A.5.
Secondary GNUmakefiles
A.6.
Environment Variables
B.
GNU General Public License
B.1.
Preamble
B.2.
GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
B.3.
Appendix: How to Apply These Terms to Your New Programs
Glossary
Next
Preface