seed7  05_20211009
About: Seed7 is an extensible general-purpose programming language with several unusual features.
  Fossies Dox: seed7_05_20211009.tgz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

seed7 Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies seed7_05_20211009.tgz contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).

Welcome to the world of Seed7

Seed7 is a general purpose programming language described at the Seed7 Homepage.

Seed7 is a higher level language compared to Ada, C++ and Java. The Seed7 interpreter and the example programs are open-source software. There is also an open-source Seed7 compiler. The compiler translates Seed7 programs to C programs which are subsequently compiled to machine code.

Features of Seed7

What is contained in this package

The Seed7 package contains the Seed7 interpreter in source besides documentation files, include files and program examples. The following sub directories exist:

  • src The source of the interpreter
  • prg Program examples
  • lib Include / library files
  • doc Documentation files
  • bin Executables and runtime libraries

Using the extension several files can be distinguished:

  • *.txt Documentation files
  • *.sd7 Program example files
  • *.s7i Include / library files
  • *.dna Include file for the dna program
  • *.c C source file
  • *.h C include file

How to compile the interpreter

For Linux this is quite simple (to compile under other operating systems see seed7/src/read_me.txt). The makefile is prepared for Linux. First make sure that gcc, make and the development packages for X11 and ncurses are installed. Then go to the seed7/src directory and type:

make depend

After the compilation the interpreter is linked to the file seed7/prg/s7. The Seed7 compiler (s7c) is compiled with:

make s7c

The compiler executable is copied to the bin directory. To check interpreter and compiler with a test suite (chk_all.sd7) use the command:

make test

Finally Seed7 can be installed with:

sudo make install

To do several compilation attempts in succession you need to execute the command

make clean

before you do make depend again.

The file seed7/src/read_me.txt contains a detailed explanation of the compilation process.

How to compile under other operating systems

Seed7 supports several operating systems such as Windows, Mac OS X and various Unix variants. How to compile under these operating systems is explained in the file seed7/src/read_me.txt.

How to execute a program

After compiling the interpreter you can make the first test. Switch to the seed7/prg directory and type:

./s7 hello

This executes the hello world program which is in the hello.sd7 file. Every file with the .sd7 extension can be executed with the s7 interpreter.

A list of the program files with a short description can be found in the file: prg/files.txt.

What to do when there are problems with the compilation

The file seed7/src/read_me.txt discusses the compilation process with more detail.

How to send a patch

Just send a pull request to the GitHub repository of Seed7. Participation is always welcome. If you send a pull request, it is assumed that your change is released under the GPL (or LGPL for libraries) license.

Greetings Thomas Mertes