Seed7 is a general purpose programming language designed by Thomas Mertes. The Seed7 interpreter and the example programs are open-source software. There is also an open-source Seed7 compiler. The compiler compiles Seed7 programs to C programs which are subsequently compiled to machine code.
In Seed7 new statements and operators can be declared easily. Functions with type results and type parameters are more elegant than a template or generics concept.
Object orientation is used where it brings advantages and not in places where other solutions are more obvious.
Here are some key features of "Seed7":
· User defined statements and operators.
· Types are first class objects (Templates and generics can be defined easily without special syntax).
· Predefined constructs like arrays or for-loops are declared in the language itself.
· Object orientation with interfaces and multiple dispatch.
· Static type checking and no automatic casts.
· Support for bigInteger and bigRational numbers which have unlimited size.
· exception handling
· overloading of procedures/functions/operators/statements
· Various predefined types like resizable arrays, hashes, bitsets, structs, color, time, duration, etc.
· Runs under linux, various unix versions and windows.
· The interpreter and the example programs use the GPL license, while the runtime library uses the LGPL license.
What's New in This Release: [ read full changelog ]
· Documentation comments have been added or improved in bigfile.s7i,
· char.s7i, clib_file.s7i, complex.s7i, external_file.s7i, file.s7i,
· float.s7i, hash.s7i, integer.s7i, shell.s7i, string.s7i, utf16.s7i,
· osfiles.s7i, rational.s7i, arrlib.c, blnlib.c, bstlib.c, arr_rtl.c,
· big_gmp.c, big_rtl.c, bst_rtl.c, chrlib.c, chr_rtl.c, cmdlib.c,
· cmd_rtl.c, fillib.c, fil_rtl.c, fltlib.c, flt_rtl.c, hshlib.c,
· hsh_rtl.c, int_rtl.c, pol_sel.c, pol_unx.c, setlib.c, set_rtl.c,
· strlib.c, str_rtl.c.
· The functions lower and upper in string.s7i and char.s7i have been
improved to use the default Unicode case mapping. In other words:
· conversions to lower respectively upper case works for all Unicode
· characters, which have a case mapping. Characters without case
· mapping are left unchanged. The mapping is independend from the
· locale. Individual character case mappings cannot be reversed,
· because some characters have multiple characters that map to them.
· In the library deflate.s7i the performance of the deflate
· ...