# TRURL

> Class library for the development of virtual RPN calculators

**Wikidata**: [Q111421081](https://www.wikidata.org/wiki/Q111421081)  
**Source**: https://4ort.xyz/entity/trurl

## Summary
TRURL is a free software class library designed for the development of virtual RPN (Reverse Polish Notation) calculators. Written in Object Pascal by developer Johannes W. Dietrich, the library was initially released on June 24, 2019. It provides a reusable framework for building calculator applications and is distributed under BSD licenses.

## Key Facts
- **Type:** Software library, free software
- **Primary Function:** Development of virtual RPN calculators
- **Programming Language:** Object Pascal
- **Developer:** Johannes W. Dietrich
- **Initial Release Date:** June 24, 2019
- **License:** BSD licenses
- **Project Host:** SourceForge (project name: trurl)
- **Full Name Meaning:** "TRURL is a Reusable Universal RPN Library" (recursive acronym)
- **Source Code Repository:** https://sourceforge.net/p/trurl/code/HEAD/tree/

## FAQs
### Q: What does the name TRURL stand for?
A: TRURL is a recursive acronym that stands for "TRURL is a Reusable Universal RPN Library." This naming convention is common in the software industry (similar to GNU or PHP).

### Q: What is TRURL used for?
A: TRURL is a class library used by software developers to create virtual Reverse Polish Notation (RPN) calculators. It provides the underlying logic and structure needed to build these specific types of calculator applications.

### Q: Is TRURL free to use?
A: Yes, TRURL is classified as free software distributed under BSD licenses. This allows users to freely run, study, change, and distribute the software and its modified versions.

### Q: What programming language is TRURL written in?
A: TRURL is written in Object Pascal, an object-oriented branch of the Pascal programming language.

## Why It Matters
TRURL plays a specific role in the software development landscape by preserving and facilitating the creation of Reverse Polish Notation (RPN) calculators. While many standard calculators use algebraic notation (infix), RPN (postfix) is preferred by many scientists, engineers, and computing professionals for its efficiency and lack of ambiguity in complex calculations. By offering a dedicated class library for this purpose, TRURL saves developers from reinventing the foundational logic required for RPN operations.

Furthermore, the project contributes to the ecosystem of the Object Pascal programming language. As an open-source resource hosted on SourceForge, it serves as a practical reference or building block for programmers working in environments like Delphi or Free Pascal. The choice of a BSD license maximizes its utility, permitting integration into both open-source and proprietary commercial software. This ensures that the library can be widely adopted for educational, hobbyist, or professional purposes without restrictive legal barriers, keeping the methodology of RPN calculation accessible in modern computing.

## Notable For
- **Recursive Acronym:** Uses the clever recursive naming convention "TRURL is a Reusable Universal RPN Library."
- **Niche Utility:** Specifically targets the distinct logic required for Reverse Polish Notation, distinguishing it from general-purpose math libraries.
- **Object Pascal Implementation:** Provides a rare, dedicated resource for calculator development within the Object Pascal ecosystem.
- **Permissive Licensing:** Distributed under BSD licenses, allowing for broad commercial and non-commercial reuse.
- **Accessibility:** Hosted publicly on SourceForge, ensuring the code and documentation are available to the global development community.

## Body

### Technical Classification
TRURL is classified as a software library and free software. It functions as a "class library," meaning it is a collection of pre-written code (classes) that programmers can use to develop new applications. Specifically, it provides the object-oriented structure necessary to simulate the behavior of RPN calculators.

### Programming Context
The library is written in Object Pascal. This programming language is an object-oriented derivative of Pascal, a language with a history dating back to 1986. By utilizing this language, TRURL integrates well with development environments that support Pascal derivatives, offering a structured, strongly-typed codebase for developers.

### Development and Distribution
The project was initiated by Johannes W. Dietrich. According to project records, the official publication date for TRURL was June 24, 2019. The project is maintained under the "trurl" project name on SourceForge, a widely known web-based service for hosting open-source software projects. The source code is publicly accessible, allowing for transparency and community-driven improvements or forks.

## References

1. [Source](https://sourceforge.net/p/trurl/wiki/License/)
2. [Source](https://sourceforge.net/p/trurl/wiki/Version%20History/)