Opentopia Directory Encyclopedia Tools

TOM computer language

Encyclopedia : T : TO : TOM : TOM computer language


TOM is name of two different programming languages.
It has been suggested that this article be split into multiple articles accessible from a [Disambiguationdisambiguation page]. ()

Objective C successor

TOM is an object oriented programming language that can be considered as the ultimate incarnation of Objective-C. The main purpose of TOM is to allow for "unplanned reuse" of code via a well-developed extension mechanism. This concept was introduced seemingly by accident in Objective C and later proved to be of wide use, and was applied with a vengeance in TOM.

The primary changes in TOM are the addition of multi-inheritance, tuples as a first-class part of the language, cleaner syntax, free of the C requirements for header files and pre-compiler commands, and the ability to use categories (the re-use mechanism) to include anything.

It is this latter ability that represents "the whole idea". Unlike Objective C's categories that allowed only new methods to be built onto existing classes, TOM allows you to add class and instance variables, new methods, even new superclasses. This results in the redefinition of "class" as "a class is defined by its main definition and any extensions", these extensions have become a first-class citizen of the language (similarly to Ruby).

External links

Tom is also programming language particularly well-suited for programming various transformations on trees/terms and XML based documents. Tom is language extension which adds a new matching primitives to C and Java as well as support for rewrite rules systems.

Tom is good for:

  • programming by pattern matching
  • transforming XML documents
  • implementing rule based systems
  • describing algebraic transformations

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: