home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / tile-forth-2.1-base.tgz.pi < prev    next >
Fred Fish's Product-Info  |  1996-10-12  |  4KB  |  88 lines

  1. .name
  2. tile-forth
  3. .fullname
  4. Threaded Interpretive Language Environment
  5. .type
  6. Programming Language
  7. .short
  8. Threaded Interpretive Language Environ.
  9. .description
  10. TILE Forth is a 32-bit implementation of the Forth-83 Standard written
  11. in C. Thus allowing it to be easily moved between different computers
  12. compared to traditional Forth implementations in assembly.
  13.  
  14. Most Forth implementations are done in assembly to be able to utilize
  15. the underlying architecture as optimal as possible. TILE Forth goes
  16. another direction. The main idea behind TILE Forth is to achieve a
  17. portable forth implementation for workstations and medium size
  18. computer systems so that new groups of programmers may be exposed to
  19. the flavor of an extensible language such as Forth.
  20.  
  21. The implementation of TILE Forth is selected so that, in principle,
  22. any C-level procedure may become available on the interactive and
  23. incremental forth level. Other models of implementation of a threaded
  24. interpreter in C are possible but these are not as flexible.
  25.  
  26. TILE Forth is organized as a set of modules to allow the kernel to be
  27. used as a general threading engine for C. Environment dependencies
  28. such as memory allocation, error handling and input/output have been
  29. separated out of the kernel to increase flexibility. The forth
  30. application is "just" an example of how to use the kernel.
  31.  
  32. Comparing forth implementations using the traditional benchmarks such
  33. as the classical sieves calculation is difficult because of the
  34. difference in speed between workstations and personal computers. The
  35. Byte sieves benchmark is reported to typically run in 16 seconds on a
  36. direct threaded forth implementation. This benchmark will run in 17
  37. seconds in TILE forth (compiled with GNU CC and optimized) on a
  38. SUN-3/60 and less than 9 seconds on a SUN SPARCstation 1. These times
  39. are the total time for loading TILE forth, compiling and executing the
  40. benchmark. Comparing to, for instance, other interpretive languages
  41. such as Lisp, where one of the classical benchmarks is calculation of
  42. the Fibonacci function, the performance increase is over a magnitude.
  43.  
  44. The kernel supports the Standard Forth-83 word set except for the
  45. blocks file word set which are not used. The kernel is extended with
  46. many of the concepts from modern programming languages. Here is a list
  47. of some of the extensions; argument binding and local variables, queue
  48. management, low level compiler words, string functions, floating point
  49. numbers, exceptions and multi-tasking. The TILE Forth environment also
  50. contains a set of reusable source files for high level multi-tasking,
  51. data description and structuring modules, and a number of programming
  52. tools.
  53.  
  54. To allow interactive and incremental program development TILE Forth
  55. includes a programming environment as a mode in GNU Emacs. This
  56. environ- ment helps with program structuring, documentation search,
  57. and program development. Each vocabulary in the kernel and the source
  58. library file is described by a manual, documentation and test file.
  59. This style of programming is emphasized throughout the environment to
  60. increase understanding and reusability of the library modules. During
  61. compilation TILE Forth's io-package keeps track for which modules have
  62. been loaded so that they are only loaded once even if included by
  63. several modules.
  64.  
  65. Writing a Forth in C gives some possibilities that normally are not
  66. available when performing the same task in assembly. TILE Forth has
  67. been profiled using the available tools under Unix. This information
  68. has been used to optimize the compiler so that it achieves a
  69. compilation speed of over 200.000 lines per minute on my machine (a
  70. disk-less SUN SPARCstation 1). Currently code is only saved in source
  71. form and applications are typically "compile-and-go".
  72.  
  73. So far TILE Forth has been ported and tested at over forty locations
  74. without any major problems except where C compilers do not allow sub-
  75. routine pointers in data structures.
  76. .version
  77. 2.1
  78. .author
  79. Mikael R.K. Patel
  80. .email
  81. mip@ida.liu.se
  82. .distribution
  83. GNU Public License
  84. .described-by
  85. Fred Fish (fnf@amigalib.com)
  86. .submittal
  87. Downloaded from prep.ai.mit.edu:pub/gnu
  88.