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 words ':TOKEN' and 'EQUATES' have been added. The library files now support virtual memory, simple garbage collection, RfC 4180-compliant parsing, SEDOL numbers, Chi square calculations, runtime macros, and several new sorting routines. Several new date and time parsing functions were added. Several beta- and gamma-related functions were added to the floating point library. The preprocessor now supports division and modulo with the new @divrm function. Lots of bugfixes were made.
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.