4tH is a Forth compiler with a little difference. Instead of the standard Forth engine it features a conventional compiler. 4tH is a very small compiler that can create bytecode, C-embeddable bytecode, standalone executables, but also works fine as a scripting language. It supports about 95% of the ANS Forth CORE wordset and features conditional compilation, pipes, files, assertions, forward declarations, enumerations, structures, suspended execution, recursion, include files, etc. It comes with an RPN calculator, line editor, preprocessor, compiler, decompiler, C-source generator, a virtual machine, and a multitasking environment.
|Tags||Software Development Libraries Code Generators Compilers|
|Operating Systems||Windows MS-DOS POSIX Linux Windows Windows Windows Mac OS X BSD Android 2.3.3 Coherent|
Release Notes: The library files now support logfiles, automated date parsing, LZ77 file compression and CSV file creation. The last defined word can be compiled anonymously. Object orientation now supports regular methods. The Sourceforge "Block reserved extension words" were added. New peephole optimizers were added to the compiler, allowing automatic compile time calculations. exec_4th() can be optimized for GCC by using the compiler switch -DUSEGCCGOTO. The word 'SMOVE' was added.
Release Notes: The library files now support FCEIL, KEY, KEY?, SUBSTITUTE, REPLACES, UNESCAPE, counted strings, 'Q' function, Catalan numbers, Riemann zeta, spell distance, new graphics functions and frexp(), and ldexp() like words. A new implementation of the ANS MEMORY wordset was added. New preprocessor words were added like FFIELD:, @eval, @mul, @minus and @sign. Stack usage of the preprocessor was significantly reduced. New preprocessor libraries add support for object orientated programming. The speed and accuracy of the FSIN, FCOS, FTAN, FEXP, FLN, and FLOG words was improved. Several minor bugfixes.
Release Notes: The library files now support stem-leaf plots, finite difference, compass boxing, HTML and XML character entities, Hamming (7,4) codes, Base64 conversion, FEXPM1, and FLNP1. Preprocessor macros can be undefined with the 'SCRAP:' keyword, and simple flow control was added. PAD size is increased to 768 characters to make pictured numeric output 64-bit compliant. The accuracy of FSINH, FCOSH, FTANH, FASIN, FACOS, and FATAN was significantly improved. The words '[ELSE]' and '[IGNORE]' have been added. Coherent 4.2.x and Android 3.x ports are now available.
Release Notes: Unions and pragmas can be defined. The library files now support several polynomials, RAM disks, menus, bitfields, bit arrays, several new sorting algorithms, Morse signs, and 3VL. The preprocessor was enhanced, supporting S\", token concatenation, string comparison, variable assignment, and smart double number/FP literals. 'DOES>' can be used to change the execution semantics of basic data types. A bug in the Linux Makefile was fixed. Overflow and underflow errors in number conversion were fixed. A bug in the 'IF' statement of 4tsh was fixed. The accuracy of the 'FERF' words was improved.
Release Notes: Specific code can be executed after a failed 'WHILE' just before exiting the loop. Binary strings can be tagged individually. The library files now support UTF-8 to GBK/2 conversion (and vice versa), infix formula translation, string pattern matching, finite state machines, statistical functions, enhanced command line parsing and the full range of ANS Forth floating point words for ZEN float. The preprocessor now supports string parsing with custom delimiters, macros within macros, and a string stack. A Markov engine and an infix-to-postfix converter were added to the examples.