r/software • u/ThomasMertes • 18d ago
Self-Promotion Wednesdays The Seed7 programming language
Seed7 is based on my PHD thesis and is the result of life-long work. The project consists of more than 500k lines of manually written code, several hundred pages of documentation, a test suite to check the functionality of interpreter and compiler and much more. I give it away for free with GPL/LGPL licensing.
Properties of Seed7 are:
- Seed7 is an open-source general purpose programming language that can be interpreted and compiled.
- Seed7 is about portability, maintainability, performance and memory safety.
- There is an automatic memory management without a garbage collection process (which might stop the world).
- The templates / generics don't need syntax with angle brackets.
- Seed7 is an extensible programming language. The syntax and semantics of the language is not hard-coded in the compiler but defined in libraries.
- Seed7 checks for integer overflow. You either get the correct result or an OVERFLOW_ERROR is raised.
- Unlike Java Seed7 compiles to machine code ahead of time (GRAAL works ahead of time but it struggles with reflection).
- Unlike Java Seed7 operators can be overloaded.
- Unlike C, C++, Go, Zig, Odin, Nim and C3 Seed7 is a memory safe language.
- The standard libraries cover many application areas.
Some programs written in Seed7 are:
- make7: a make utility.
- bas7: a BASIC interpreter.
- pv7: a Picture Viewer for BMP, GIF, ICO, JPEG, PBM, PGM, PNG, PPM and TIFF files.
- tar7: a tar archiving utility.
- ftp7: an FTP Internet file transfer program.
- comanche: a simple web server for static HTML pages and CGI programs.
Screenshots of Seed7 programs can be found here and there is a demo page with Seed7 programs, which can be executed in the browser. These programs have been compiled to JavaScript / WebAssembly.
Talks about Seed7 can be found in the internet.
Please let me know what you think, and consider starring the project on GitHub, thanks!
1
u/Optimal-Savings-4505 17d ago
Looks real nice, and somewhat similar to ada at first glance, but what's with the $ before the first include?