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