TOM (programming language): Difference between revisions

Content deleted Content added
Engelec (talk | contribs)
Objective C successor: link to cached overview
m Bot: Fixing double redirect to Tom (programming language)
Tag: Redirect target changed
 
(19 intermediate revisions by 12 users not shown)
Line 1:
'''TOM''' is the name of two different#REDIRECT [[Tom (programming languageslanguage)]].
{{split}}
 
{{Redirect category shell|1=
==Objective C successor==
{{R from other capitalisation}}
'''TOM''' was an [[object oriented]] programming language developed in the [[1990s]] that built upon the lessons learned from [[Objective-C]]. The main purpose of TOM was 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.
{{R from other disambiguation}}
 
}}
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 programming language|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 allowed the addition of 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 programming language|Ruby]]).
 
The development of the TOM language has ceased.
 
===External link===
 
* [http://www.google.com/search?q=cache:www.gerbil.org/tom/doc/why.shtml Overview at cached Gerbil site]
 
==[[Pattern matching]] language==
'''Tom''' is also a programming language particularly well-suited for programming various transformations on trees/terms and [[XML]] based documents. Tom is a language extension which adds new matching primitives to [[C programming language|C]] and [[Java programming language|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 link===
* [http://tom.loria.fr/ Tom language website]
 
 
{{compu-lang-stub}}
 
[[Category:Programming languages]]