Skip to main content

The Organization of Files in a Project

A SIMPOL project is stored on the hard disk as a group of files with the following extensions smj, sma, smu, smp, sml, and smz with an appropiate folder structure. I will explain the folder structure using the above project example.

The basis of every project is a directory. All of the files that are directly part of the project are stored in the project directory or in subdirectories below that. The name of the directory is the same as the name of the project. If the project name is MyFile1, the directory name will be MyFile1. The project description is stored in this directory; in this example it is named MyFile1.smj. Inside the project directory we will have a directory for each main source code file. These are called modules or module directories. Each module contains its main source code file and the rest of the source code files that are implemented as part of the module. Any source code files that are in the module directory besides the main source code file of the module, must be included in the main or other included source code files in this module in order to be compiled and considered part of the module during the build process. It is also possible to include, as part of the code of the module, files from other modules or other projects, for example source code files with standard functions, etc. When the project is built, the resulting byte-code file (either library or program) will also be found in the module's directory.

The name of the module directory will be the name of the main source code file without the extension. In the previous example we have two modules: "MyFile1" and "MyFile2". The first module "MyFile1" contains the files MyFile1a.sma, MyFile1b.sma and after it is compiled the first time, MyFile1.smp. The second module "MyFile2" contains the files MyFile2.sma and after it has been compiled the first time, MyFile2.sml".

When the project is built the result is stored in the directory called bin, which is a subdirectory of the project directory. In the example, the final result of the building the project is the file MyFile1.smp.