Aviva Directory » Computers & Internet » Programming » Tom

Developed at INRIA in 2013, Tom is a programming language extension that adds new matching primitives to languages like C, Caml, and Java.

Although INRIA's documentation states that Tom is not a stand-alone programming language, as it relies on the underlying language (C, Caml, or Java), to which it adds several constructs, The official website for the language describes it as a real programming language, with many programming and debugging facilities.

Perhaps this indicates that is not a stand-alone programming language because it is designed to work with C, Caml, or Java, but that it is nevertheless a fully functional programming language in its own right, with its own syntax, semantics, and features.

While Tom is rich and complex, it is designed to be used with C, Caml, or Java. Of these, it is particularly well suited for Java. An extension of Java, any Java program is a correct Tom program. Tom is designed to manipulate the Java tree structures and XML documents. Data is represented using an efficient object-oriented tree-based data structure, and Java builtins, such as int, char, and string can be used. Tom provides pattern-matching facilities to inspect objects and retrieve values. It is a powerful strategy language that can be used to control transformations.

Tom is well-suited for programming by pattern matching, developing compilers and domain-specific languages, transforming XML documents, implementing rule-based systems, and describing algebraic transformations.

While developed at INRIA, Tom is a free and open-source language, available under the GPL and BSD licenses. The core of the Tom compiler is released under the GPL v.2, while the Tom runtime library and predefined mappings are under the BSD license.

In this portion of our computer programming language guide, we're focused on the programming language or language extension known as Tom. Topics relating to the language, compilers, or other tools or utilities designed to facilitate Tom programming, as well as Tom tutorials, guides, forums, user groups, or informational sites.



Recommended Resources

Search for Tom on Google or Bing