Back to Search Start Over

Tom Manual

Authors :
Bach , Jean-Christophe
Balland , Emilie
Brauner , Paul
Kopetz , Radu
Moreau , Pierre-Etienne
Reilles , Antoine
Formal islands: foundations and applications ( PAREO )
INRIA Lorraine
Institut National de Recherche en Informatique et en Automatique ( Inria ) -Institut National de Recherche en Informatique et en Automatique ( Inria ) -Laboratoire Lorrain de Recherche en Informatique et ses Applications ( LORIA )
Institut National de Recherche en Informatique et en Automatique ( Inria ) -Université Henri Poincaré - Nancy 1 ( UHP ) -Université Nancy 2-Institut National Polytechnique de Lorraine ( INPL ) -Centre National de la Recherche Scientifique ( CNRS ) -Université Henri Poincaré - Nancy 1 ( UHP ) -Université Nancy 2-Institut National Polytechnique de Lorraine ( INPL ) -Centre National de la Recherche Scientifique ( CNRS )
Source :
[Technical Report] 2009, pp.155
Publication Year :
2009
Publisher :
HAL CCSD, 2009.

Abstract

This manual contains information for Tom version 2.7. Tom is a language extension which adds new matching primitives to languages like C, Java, and Caml. Although rich and complex, Tom is not a stand-alone language: like a preprocessor, it strongly relies on the underlying language (C, Java, or Caml), called host-language in the following. To this language, Tom adds several constructs. The main construct, %match, is similar to the match primitive found in functional languages: given an object (called subject) and a list of patterns-actions, the match primitive selects the first pattern that matches the subject and performs the associated action. The sub ject against which we match can be any object, but in practice, this ob ject is usually a tree-based data-structure, also called term in the algebraic programming community. The match construct may be seen as an extension of the classical switch/case construct. The main difference is that the discrimination occurs on a term and not on atomic values like characters or integers: the patterns are used to discriminate and retrieve information from an algebraic data structure. There- fore, Tom is a good language for programming by pattern matching, and it is particularly well-suited for programming various transformations on trees/terms or Xml data-structures.

Details

Language :
English
Database :
OpenAIRE
Journal :
[Technical Report] 2009, pp.155
Accession number :
edsair.od......2100..e2623c44488a9f99de560ed992f1b67d