Paradigm | multi-paradigm: extensible, object-oriented, imperative, structured, generic, reflective |
---|---|
Designed by | Thomas Mertes |
First appeared | 2005 |
Stable release |
2016-10-31 / October 31, 2016
|
Typing discipline | static, strong, safe, nominative, manifest |
OS | Cross-platform: BSD, Linux, OS X, Unix, Windows |
License | GPL, LGPL (for the runtime library) |
Filename extensions | .sd7, .s7i |
Website | seed7 |
Major implementations | |
open source reference implementation | |
Influenced by | |
Pascal, Modula-2, Ada, ALGOL 68, C, C++, Java |
Seed7 is an extensible general-purpose programming language designed by Thomas Mertes. It is syntactically similar to Pascal and Ada. Along with many other features, it provides an extension mechanism. Seed7 supports introducing new syntax elements and their semantics into the language, and allows new language constructs to be defined and written in Seed7. E.g.: programmers can introduce syntax and semantics of new statements and user defined operator symbols. The implementation of Seed7 differs significantly from that of languages with hard-coded syntax and semantics.
Seed7 supports the programming paradigms: imperative, object-oriented (OO), and generic. It also supports features such as call by name, multiple dispatch, function overloading, operator overloading, exception handling and arbitrary-precision arithmetic.
Major features include:
Several programming language concepts are generalized:
The Seed7 project includes both an interpreter and a compiler. The interpreter starts programs very quickly. This supports fast program development. The compiler uses the parser and reflection interfaces from the run-time library to generate a C program, which is subsequently compiled to machine code. Compiled Seed7 programs can have similar performance as C programs.