TILE(1)

NAME
tile - c based forth-83 standard compiler and programming environment

SYNOPSIS
forth [-dpru size] [file ...] [-a argument ...]
forth [-dpru size] [file ...] [-s start-symbol] [argument ...]

DESCRIPTION
forth uses a command syntax much like a compiler. The file arguments are loaded before the interaction top loop is started. A start-symbol may also be given as an argument making forth act as a `compile-and-go' compiler of applications. Any extra options or parameters passed to forth may be accessed by the application. As extensions of the Forth-83 Standard forth supports floating point numbers, strings, multi-tasking, exceptions, private definitions, argument binding and local variables and much more. Written in C the kernel may be used as a general purpose environment for interactive testing and development of C-code.

To provide an interactive programming environment for developing programs forth may be run as a sub-process to GNU Emacs in a specialized forth-mode. Source code may be edited and directly tested by passing either a paragraph of code or a whole buffer to forth from Emacs. The forth-mode also supports documentation retrieval and automatic indentation of forth code, comments and definitions.

An environment variable is used to specify file search paths and support management of libraries of source code. forth compiles faster than most compilers link with approx. 70.000 lines per minute on a SUN-3/60 (and over 200.000 on a SUN-SPARCstation 1). Code is only saved in source form. Loading all available library code takes less than a second.

OPTIONS

-ddictionary-size
    Size of dictionary in bytes. Default allocation is 1024K bytes.

-pparameters-stack-size
    Size of foreground process parameter stack in cells (32-bits). Default allocation is 256 cells.

-rreturn-stack-size
    Size of foreground process return stack in cells (32-bits). Default allocation is 256 cells.

-uuser-area-size
    Size of foreground process user area in bytes. Default allocation is 1024 bytes.

-a argument ...
    Allows access of the rest of the arguments. The first arguments is the string forth.

-s start-symbol
    Defines the symbol to be used instead of the normal interaction top-loop. The start-symbol becomes the first argument and any further arguments may be accessed by the application. The library contains some examples of argument fetching functions.

LIBRARIES
The tile environment consists currently of five directories with C kernel source, forth-83 source library, test and example code, manuals and documentation. The directory src contains all the C-level code and the GNU emacs programming environment. The directory lib contains Forth-83 source code modules, consisting of a number of data modelling, and debugging tools, and high level multi-tasking constructs such as semaphores, channels, rendezvous and task types. Documentation of the source code and the kernel are found in the directory man and in the directory doc. These are use for handling manual commands or documentation search in the programming environment (in GNU emacs). Test programs for each forth-83 source library code may be found in the directory tst.

FILES
file.f83
    Forth-83 source input file
file.tst
    Forth-83 source test file
file.3
    Forth-83 source manual pages
file.doc
    Forth-83 source documentation file
kernel.c..h..v
    multi-tasking c based Forth-83 kernel and extension vocabularies
error.c..h
    error management package
io.c..h
    multi-tasking input package
memory.c..h
    memory management package
forth.c
    this application
forth.el
    GNU Emacs forth-mode source
tile.1
    this manual
Makefile
    puts the forth application together

ENVIRONMENT

TILE
    Path for the tile directory structure. A normal setting for a single user is `$HOME/tile'.

TILEPATH
    Search path for library source files. A normal setting is `$TILE/lib:$TILE/tst' which will allow the file include function in forth to locate library source files in the current directory ($PWD), the standard library, and the test code library. forth also looks for files at your home directory ($HOME).

MANPATH
    Search path for manual source files. Used by man for access of manual pages. Setting this environment variable to `$TILE/man:/usr/share/man' will allow you to read the forth manual pages.

GNU EMACS FORTH MODE
The GNU Emacs forth-mode supports interactive programming, automatic indentation of source code, and documentation search of the forth kernel and library within Emacs. To allow automatic loading of the mode your .emacs file should contain the following definitions;

  (set-variable 'load-path
                (append load-path
                        '(nil "~/tile")))
  (setq forth-help-load-path '(nil "~/tile/doc"))
  (setq auto-mode-alist
        (append '(("\\.tst$" . forth-mode)
                ("\\.f83$" . forth-mode))
              auto-mode-alist))
  (autoload 'forth-mode "forth")

Further documentation about the forth-mode may be found by giving the command `M-x describe-mode' in Emacs.

BUGS
Bugs should be reported to mip@ida.liu.se. Bugs tend actually to be fixed if they can be isolated, so it is in your interest to report them in such a way that they can be easily reproduced according to get newer version.

COPYING
Copyright (C) 1989-90 Mikael R.K. Patel
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled "GNU General Public License" is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the section entitled "GNU General Public License" may be included in a translation approved by the author instead of in the original English.

AUTHORS
Mikael R.K. Patel
Computer Aided Design Laboratory (CADLAB)
Department of Computer and Information Science
Linkoping University
S-581 83 LINKOPING
SWEDEN
Email: mip@ida.liu.se