t3d programming

(click to enlarge images)


t3d executable program is a multi-purpose program which can:

  • Build independent applications.
  • Make executables from script commands (or script) files and seamlessly execute those prepared script executables.
  • Answer service works at least as a calculator. Hopefully it will some day learn some more entertaining tricks; like saying "I don't know".
  • t3d executable is also responsible for keeping the t3d genome updated and otherwise in good condition.
  • Web server (apache etc.) can be give t3d executable html (-script) files containing t3d (scripts), t3d (.exe)compiles the scripts into (script-hash named) executable files and stores those executables for later use. When the web server next times gives the same script (determined by the scripts checksum), t3d.executable runs the stored pre-compiled executable and outputs the results on a position of given web script file.


t3d programming environment is a combination of user defined resources and the resources provided by the t3d programming system. All t3d programming system parts must be written into a t3d.ini file, which must be put to its default location. Standard ini file position makes tasks easier for the web server and system administrators.


t3d sources are compiled into a excutables using typical (modern) C compilers. The default (preprocessor, compiler & linker) is GCC. t3d programming language specialties are inserted into sources by a dedicated pre-pre-processor, which prepares the sources ready for the (GCC) compiler. if the (GCC) compiling is successful, a ready to use executable file is produced - if the compiling / linking failed, the t3d executable commands the post-processor into in interpreting the GCC error output.


GUI (graphical user interface) is good and modern. C programs do not have a build in GUI system and the Java(TM) currently has the best most portable GUI system. If possible the t3d graphical display system will be borrowed (*) from Java(TM), but used using the t3d programming language! Two executables are needed GCC-compiled (compare brain) and a GUI.exe, which is the 'brainless' one (compare face). GUI.exe will not have more than logic than what is required for simple 'if - elses' AND doing commanded showing (of the told GUI objects and the told GUI table parts) AND receive input (user/socket) AND give output (to user/socket). Thus all the intelligence within the t3d programs must be build into GCC compiled executables. Socket communication is the default communication method, but if it is not always possible there are other options for interprocess communication (files, shared access memory ect.). The principle is simple and it works (has worked before).
In the nutshell the GUI-system is as follows:

  1. Two executables, Myexe.exe (GCC-compiled) put into one directory and GUI.exe (java) into it's a 'res'-subdirectory. Myexe.exe forks or shell executes the GUI.exe into action.
  2. Both exes exchange commands using computers sockets one writes to a socket one reads from there.
  3. GUI.exe reads commands and shows described or given objects.
  4. GUI.exe collects user input from the GUI objects (those which are for receiving the user input), and writes the given data into socket.
  5. GCC.exe reads communication socket and acts according to received socket data.
  6. Finally one executable sends a shut down signal to an another.

* If borrowing the Java's GUI-system would turn out to be impractical/impossible, a t3d GUI solution would then be borrowed from some of the other available GUI - systems i.e. it's not a problem.

** There even funny / practical side effects with the arrangement e.g. the two exes can also monitor each others conditions. Thus it is possible for one executable to crash / halt while another executable can try to revitalize the 'dead' one. Thus if the revitalization succeeds the revitalized exe can always get a (potentially valuable) error report of the last before death instructions.

t3d programming Language

Read the last two pages of the ChOS license draft! or just the two language pages!
then continue...

t3d programs can be run as a standalone programs, shell scripts or as web scripts. t3d is C99 based and should be compilable with GCC or other C compilers of similar quality.

It is possible to do t3d programming even using other programming languages (Perl, Pascal, COBOL, Ada,...) those t3d dialects go under a common name x3d languages. Basically each x3d- function/ x3d-gene should have an almost identical prototype structure as a similarly working t3d function prototypes has.

t3d is a massive project but ultimately there should be an easy to use tools for pretty much every task. Meaning that once someone provides a useful tool, it is distributed into tool bags of others; among the million other easy-to-use & if-I-need-it-I-know-how-to-use-it tools .

All t3d tools together form a structure called "t3d-genome" and each tool is a "t3d-gene". t3d-genes can call for individual functions, libraries or even such external utilities which a particular t3d-gene is able to use. Typically each t3d function/ gene has many alias names. Any alias name, which the users like, is a good one; including computer slang and expressions using foreign languages.

With t3d almost nothing computer related is off- topic, because each t3d- gene just doesn't have to be supported within each computer environment. A valid t3d-gene which could be for example be used for opening a roof from a Toyota Lexus with a following commands:

    t3d_write_CONSOLE("Not a Toyota LEXUS");

So, the programming environment for the t3d programming does not need to be too limited, of cause that example is pretty extreme. However the idea is that any developer with two brain cells or more should be able to correctly call any t3d-gene independently whether the coder knew that such t3d-gene existed or not.

We leave to community to judge whether there are many:
  1. useful programming languages which are easier to learn
  2. programming languages which allow faster building of complex programs

discussion starters:

  • t3d_convert_file_Rfile_TEXT2SWEDISH
  • t3d_read_url_Rbarray_COLLECT_n_LINKS
  • t3d_environment_Rbarray_GET_n_CURRENT_USER
  • t3d_crypto_file_Rfile_CRYPTOANALYZE_MAX_SECONDSXXX
  • t3d_convert_dirpath_Rfile_2AVI
  • t3d_add_file_Rfile_SOUND2AVI
  • t3d_lisää_tiedosto_Rtiedosto_ÄÄNI2AVI (same as the above function but a call is in Finnish)

Because the t3d genes may be called / used with simple shell commands e.g.

c:\lectures\t3d 't3d_convert_file_Rfile_SOUND2TEXT(\"lecture7.wav\",\"lec.txt\") ;'
c:\lectures\t3d 't3d_convert_file_Rfile_TEXT2HTML(\"lec.txt\",\"lecture7.html\") ;'

It is possible that one day such script tool would be popular office tool for non-programmers, and then it would mean that the charity organizations would be able to sell a significant amount ChOS license usage permissions for commercial users, because the t3d is licensed under the Charity Open Source license.