# Opal (programming language)

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Opal_(programming_language)
> Markdown URL: https://mediated.wiki/source/Opal_(programming_language).md
> Source: https://en.wikipedia.org/wiki/Opal_(programming_language)
> Source revision: 1247249871
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

This article is about the functional programming language. For the Ruby interpreter, see [Ruby (programming language) § Alternative implementations](/source/Ruby_(programming_language)#Alternative_implementations).

**OPAL** (**OP**timized **A**pplicative **L**anguage)[1] is a [functional programming language](/source/Functional_programming_language) first developed at [Technische Universität Berlin](/source/Technische_Universit%C3%A4t_Berlin).

There is a later framework for [static code analysis](/source/Static_code_analysis) also called Opal.[2]

## Example program

This is an example OPAL program, which calculates the [GCD](/source/Greatest_Common_Divisor) recursively.

**Signature file (declaration)**

   **SIGNATURE** GCD
   **FUN** GCD: nat ** nat -> nat

**Implementation file (definition)**

   **IMPLEMENTATION** GCD
   **IMPORT** Nat **COMPLETELY**
   **DEF** GCD(a,b) == **IF** a % b = 0 **THEN** b
                       **ELSE IF** a-b < b **THEN** GCD(b,a-b)
                           **ELSE** GCD(a-b,b)
                       **FI**
                   **FI**

## References

1. **[^](#cite_ref-1)** ["Opal"](https://github.com/TU-Berlin/opal). *TU-Berlin/opal - Optimized Applicative Language*. Retrieved 2023-09-23.

1. **[^](#cite_ref-2)** ["Home page"](https://www.opal-project.de/). *OPAL Project*. Retrieved 2023-11-25.

## External links

- [The OPAL Home Page](https://web.archive.org/web/20170823091221/http://projects.uebb.tu-berlin.de/opal/trac), archived, last modified 30 September 2010.

- [OPAL Installation Guide](https://web.archive.org/web/20120426022221/http://projects.uebb.tu-berlin.de/opal/trac/wiki/InstallationEnglish), archived.

This programming-language-related article is a stub. You can help Wikipedia by adding missing information.

- [v](https://en.wikipedia.org/wiki/Template:Prog-lang-stub)
- [t](/source/Template_talk%3AProg-lang-stub)
- [e](https://en.wikipedia.org/wiki/Special:EditPage/Template:Prog-lang-stub)

---
Adapted from the Wikipedia article [Opal (programming language)](https://en.wikipedia.org/wiki/Opal_(programming_language)) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Opal_(programming_language)?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
