|
Seed7 is an extensible general-purpose programming language designed by Thomas Mertes. It is syntactically similar to Pascal and Ada. In addition to many other features it provides an extension mechanism.〔Zingaro, Daniel, "Modern Extensible Languages", SQRL Report 47 McMaster University (October 2007), page 16.〕 Seed7 supports the introduction of new syntax elements and their semantics into the language and it allows new language constructs to be defined using the Seed7 language itself.〔Abrial, Jean-Raymond and Glässer, Uwe, "Rigorous Methods for Software Construction and Analysis", ISBN 978-3-642-11446-5, Springer, 2010, page 166.〕 E.g.: Programmers can introduce syntax and semantics of new statements as well as user defined operator symbols. The implementation of Seed7 differs significantly from the implementation of languages with hard-coded syntax and semantics. ==Features== Seed7 supports the imperative, object-oriented and generic programming paradigms. It also supports features such as call by name, multiple dispatch, function overloading, operator overloading, exception handling and arbitrary-precision arithmetic. Major features include: * User defined statements and operators * Abstract data types * Templates without special syntax * OO with interfaces and multiple dispatch * Statically typed * May be interpreted or compiled * Source code portability * Runs under Linux, Windows, Mac OS, BSD, Unix Several programming language concepts are generalized: * Type declarations (which assign a name to a type) and function definitions take the form of constant definitions. * Compile time expressions can execute user defined functions. * Overloading and object-orientation (with multiple dispatch) are seen as common concepts. They just happen at different points of time (compile time and run time, respectively). * Type names and type descriptions can be used as parameter and function result. * Functions, which are executed at compile time, can be used to define objects. * Templates are written as compile time functions with type parameters. * Arrays, hash maps and structs are not a hard-coded feature. Instead they are defined as abstract data type in libraries. * Parser and interpreter are part of the runtime library. * Unicode support is based on UTF-32 (this avoids the problems of a variable-length encoding like UTF-16). The Seed7 project includes both an interpreter and a compiler. The interpreter starts programs very quickly. This supports fast program development. The Seed7 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. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Seed7」の詳細全文を読む スポンサード リンク
|