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