Timbre and PatternForth

Massimo Dentico m.dentico@galactica.it
Mon, 04 Dec 2000 03:36:16 +0100


Rob Chapman, "Timbre"

Essentially is a C-based Forth kernel with extensions.

- http://www.compusmart.ab.ca/rc/Timbre/timbre.htm

===================================================================
Description

Timbre is a script driven translator engine. It uses rules and rule
sets  to determine how to transform input into output. It has  been
used  for language translation, target compilation, meta compiling,
code  verification,  binary  viewing, code  documentation  and  RTF
parsers  and reformatters. Timbre was meant to capture the  essence
of  translation  allowing  for very simple  yet  powerful  ways  of
translating  anything  to  anything. One example  included  in  the
distribution  is  for  source to source translation  with  peephole
optimization.

[...]
===================================================================

Excerpt from "Translator Frameworks":

- http://www.compusmart.ab.ca/rc/Timbre/TranslatorFrameWorks.html

===================================================================
[...]

Why?

If  you  have  ever used AWK, SED or a compiler, you  have  used  a
translator.  With the framework presented here, it is  possible  to
build   simple  translator  applications  such  as:  text  filters,
extendable   optimizing   compilers,   code   verifiers,   glossary
generators, language translators, text formatters, code  analyzers,
or for that matter, if you can describe it, you can build it. Why?:
because its simple.

How?

Input  and  output  flow  management  is  done  with  the  supplied
machinery.  Rules and rule sets are defined to manage the  flow  of
input to output.

[...]
===================================================================

-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--

Bradford  J. Rodriguez, "PatternForth: A Pattern-Matching  Language
for Real-Time Control"

- http://www.zetetics.com/bj/papers/ms/index.html

===================================================================
[...]

2. Perceived Requirements

The  example  applications noted above define a set of requirements
for this language:

[...]

    b)  Industrial Control. The second "theme" of this  project  is
    the  use  of  pattern  processing  in  industrial  and  process
    control   environments.  This  is  a  radical  departure   from
    previous pattern matching work. Industrial control carries  its
    own set of special requirements:
    
         *   Real   time.  Speed  is  of  the  essence  in  control
         environments; all of the functions of the computer  system
         must execute either very quickly (most preferable), or  in
         a  predictable  time (acceptable). Randomly occuring  long
         delays in processing are anathema.
         
         *  Interactive. The computer must operate on a  continuous
         stream  of  input and output data. "Batch"  processing  is
         useless in real-time control situations.
         
         *  I/O intensive. The data used by a process controller is
         not  presented in disk files. Usually, the control program
         must   interact  directly  with  peripheral   devices   to
         acquire,  format, and output the data. The  language  must
         support direct access to the I/O hardware, in contrast  to
         most  programming environments where the system  resources
         must be protected from uncontrolled access.
         
         *  Nontext  data. Very little industrial data  is  in  the
         form  of  ASCII text. The pattern matching techniques  for
         text  must  be  extended to the realm of arbitrary  binary
         data.
         
         *  Small computers. Mainframe computers are rarely used in
         industrial control these days, because of their  cost  and
         strict  environmental requirements.  The  object  programs
         must  run on a microcomputer. (Given the current state  of
         the art, this is not a severe restriction.)

[...]
===================================================================

The program listing is pending.

-- 
Massimo Dentico