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}}