# Tom

> pattern matching language

**Wikidata**: [Q7424115](https://www.wikidata.org/wiki/Q7424115)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Tom_(programming_language))  
**Source**: https://4ort.xyz/entity/tom-q7424115

## Summary
Tom is a pattern matching programming language created in 2001. It is designed for communicating instructions to a machine through declarative pattern matching capabilities.

## Key Facts
- **Type**: Programming language specializing in pattern matching  
- **Inception**: Released in 2001  
- **License**: GNU General Public License  
- **Official Website**: http://tom.loria.fr/  
- **Logo**: Available at https://commons.wikimedia.org/wiki/Special:FilePath/Tom_(pattern_matching_language)_logo.png  
- **Wikidata ID**: Q8447  
- **Sitelink Count**: 5 (cross-language Wikipedia presence)  
- **MacPorts Port**: Listed as `tom`  

## FAQs
### Q: What is Tom?  
A: Tom is a programming language designed specifically for pattern matching tasks, enabling developers to define rules for transforming data structures through declarative patterns.  

### Q: When was Tom first released?  
A: Tom was first introduced in 2001 as a pattern matching language for processing data structures and code transformations.  

### Q: Is Tom free to use?  
A: Yes, Tom is distributed under the GNU General Public License, making it free software with open-source terms.  

## Why It Matters
Tom addresses the need for concise, readable syntax in domain-specific transformation tasks. Its pattern matching capabilities simplify complex data manipulation and code generation workflows, particularly useful in language processing, symbolic computation, and compiler construction. By offering a specialized paradigm beyond general-purpose languages, Tom provides developers with a focused tool for declarative rule-based programming, enhancing productivity in transformation-heavy applications.

## Notable For
- **Specialized Paradigm**: Entirely built around pattern matching for structural transformations.  
- **Academic Origin**: Developed and maintained through LORIA research institute (France).  
- **Cross-Language Support**: Official documentation exists in Arabic, English, Persian, French, and Portuguese.  
- **Longevity**: Continuously developed since 2001 with sustained community presence.  

## Body
### Overview
Tom is a programming language explicitly designed for pattern matching and structural transformations. It enables developers to define rules for processing complex data structures using declarative syntax, making it particularly suited for domains like compiler design, language processing, and symbolic computation. The language operates on the principle of pattern-directed computation, where patterns are matched against input data to trigger specific transformations or rule applications.

### Technical Details
- **Licensing**: Released under the GNU General Public License, ensuring open-source accessibility.  
- **Development**: Hosted at http://tom.loria.fr/, serving as the primary resource for documentation and downloads.  
- **Integration**: Available through MacPorts as the package `tom`, facilitating system-level installation.  
- **Community Recognition**: Acknowledged by academic and open-source communities with 5 cross-language Wikipedia entries.  
- **Identity**: Distinct from unrelated entities like TOM (e.g., Tomcat), avoiding naming conflicts in technical literature.  

### Design Philosophy
The core of Tom lies in its pattern matching engine, which allows developers to define transformation rules as pattern expressions. This approach abstracts imperative control flow, enabling higher-level specification of how data should be manipulated. The language emphasizes readability and maintainability for transformation tasks, reducing boilerplate code often required in manual data processing implementations.