TEIMSI
Developer's platform of programming text codes
Home|Utilities|Forum|Documentation

Table of contents -> Chapter 1 - Introduction


TEIMSI; developer's platform of programming text codes.


This is the documentation of TEIMSI (Version 0.95), the name of this project which is constituted by several important elements. One of these elements is a computer program "translator" of programming text on the computer not object-oriented language (for this Version) which is determined according to the syntax rules for the same compiler program or the content of the set of files that the project contains and that allow its proper operation.

The TEIMSI name comes from an abbreviation for "Translator and Extender of Instructions for Machines for the creation of Intelligent Software". With the current version you can create 32-bit applications and it's compatible in most Win * operating systems (2000/XP/7/...), it also shows a notable functionality (but depending on the version of this compability layer) under Unix kernel based operating systems through the great application named "Wine". In our practice we'll call as "Scripts" the programming text files.

The main goal of the TEIMSI Editor-Compiler is to read programming text files in this language in order to generate other files that will be used to assemble an executable program ".EXE" or file ".DLL" (dynamic library). It has its main similarities in syntax and functions with the popular languages (Jscript and PHP). This means that the TEIMSI editor (TeimsiEditor.exe program file) is responsible for converting a programmed text or "Script" into a sequence of machine instructions. The text produced is in assembly language understandable by our friendly application FASM (or "Flat Assembler" with free distribution) which is responsible for the final (relatively quick and easy) task of producing the executable or dynamic library file.


Locating the folder of the compiler

It may be necessary to locate the compiler's folder named "Teimsi" (Typically within the Programs Files folder) for which we'll see two methods; the first is to reach it by using the shortcut link file named "Teimsi.lnk" located in the "Teimsi_Projects" folder on the user's Documents folder, the second method is to search for a shortcut to the Teimsi editor and see its properties to search the target folder that contains the application (named "binary"); it is contained within the folder we search.


To assemble the executable program or DLL the following items are needed:

1) The TEIMSI Editor and Compiler program file "EditorTEIMSI.exe" and the dynamic library (.DLL) located in the same folder of the program whose name begins with "teimsi_".

2) The files in the "engine" folder (which is inside the compiler's folder). These files have the code in assembly equivalent to the functions and operators of TEIMSI language. A very important feature of assembly FASM for the TEIMSI projects, is that it doesn't assemble codes functions that are not made explicit referenced by a call, jump or reference to the start of procedures, allowing to generate .exe or .dll objects with the executable code minimum necessary.

3) The files in the "engine\internal" folder (which is inside the compiler's folder). Contains the base files for assembly, including the following files:

FileDescription
 
3.1) - "protodb.dat"Contains the prototypes of the default functions and operators of the TEIMSI language.
   
3.2) - "import_dll.def"Contains the imported functions of libraries API (application program interface) of the operating system to make work every TEIMSI default function.
 

4) The compiler generated files are stored in a folder named "<application_name> _asm_files" (where <application_name> is the name of the project which is deduced from the original TEIMSI file, for example: transformer.tsi or transformer.thp, the tsi extension is preferred for main files or projects headers (in this case the project name is "transformer"). The generated files are:

FileDescription
 
4.1) - app_code.asmContains the assembly instructions previously compiled, deduced and copied from the TSI file and included files.
4.2) - app_data.asmContains the initialized data section for the program or dll.
4.3) - app_dataun.asmContains the un-initialized data section for the program or dll.
4.4) - app_import.asmContains references to the imported API functions.
4.5) - app_rc.asmContains the resources data section for the program or dll.
4.6) - base_exe.asm/base_dll.asm/base_dlltsi.asmIt's the file that contains base code used to assemble, this file is critical and its content is predetermined and only varies some references to the paths to folders used in the assembly. It can be any of those names depending on the type of object you want to create <Exe, Dll or TEIMSI dll> in the menu "Compile" of TEIMSI file editor.
   
4.7) - create.batContains commands to assemble the program file. You can use it (manually) occasionally when an error occurred during the compilation of TEIMSI code that prevented the assembly (which can be manually made by correcting certain errors in the generated files).
 

These described files are used temporarily, they are automatically deleted if you choose the "Create and run .exe from the TEIMSI script" command (same results occur if you press the F5 key) on the "Compile" menu of the TEIMSI Editor. These files are created but not deleted if you choose the "Save and only compile TEIMSI script" (F4 key) command because to make the assembly it must be manually executed the "create.bat" file or choose the "Assemble compiled object with Fasm" command (F3 key).


Go to Table of contents