Tom (programming language)
{{Short description|None}}
{{Notability|Products|date=August 2021}}
{{Infobox software
| name = Tom
| logo = Tom (pattern matching language) logo.png
| screenshot =
| caption =
| developer = INRIA
| latest release version = 2.10https://gforge.inria.fr/frs/?group_id=78&release_id=7940 {{Dead link|date=September 2022}}
| latest release date = 2013-03-21
| latest preview version =
| latest preview date =
| platform =
| genre = program transformation language
| license = GPL, BSD licenses
| website = {{URL|tom.loria.fr}}
}}
{{Portal|Free and open-source software}}
Tom is a programming language{{cite web|url=http://freecode.com/projects/jtom|title=Freecode}} particularly well-suited for programming various transformations on tree structures and XML-based documents. Tom is a language extension which adds new matching primitives to C and JavaJava Community News [http://www.artima.com/forums/flat.jsp?forum=276&thread=217701&start=0&msRange=15 Tom: A Pattern-Matching Compiler for Java] as well as support for rewrite rules systems.{{cite web|url=http://www.loria.fr/~moreau/Papers/tom-manual-2.6.pdf|title=Tom Manual|date=April 2008|author=Emilie Balland, Paul Brauner, Radu Kopetz, Pierre-Etienne Moreau and Antoine Reilles}} The rules can be controlled using a strategy{{cite web|url=http://langexplr.blogspot.ch/2008/03/data-structure-traversal-with-tom.html|title=Data structure traversal with Tom|date=4 April 2008}} language.
Tom is good for:
- programming by pattern matching{{cite web|url=http://www.cs.ucr.edu/~stelo/pattern.html|title=Pattern Matching Pointers}}
- developing compilers and domain-specific languages (DSL)
- transforming XML documents
- implementing rule-based systems
- describing algebraic transformations
References
{{reflist}}
External links
- [http://tom.loria.fr/ Tom language website]
- [http://gforge.inria.fr/projects/tom Tom gforge website]
- [http://tom.loria.fr/wiki/index.php/Documentation Tutorial and Reference Manual]
Category:Programming language implementation
Category:Pattern matching programming languages