Related articles |
---|
Language Processor Generators ckminer@lance.colostate.edu (1992-02-18) |
Re: Language Processor Generators pardo@cs.washington.edu (1992-02-19) |
Re: Language Processor Generators joshua@veritas.com (1992-02-20) |
Newsgroups: | comp.compilers |
From: | pardo@cs.washington.edu (David Keppel) |
Keywords: | tools, bibliography |
Organization: | Computer Science & Engineering, U. of Washington, Seattle |
References: | 92-02-086 |
Date: | Wed, 19 Feb 92 01:37:14 GMT |
ckminer@lance.colostate.edu (Chris Miner) writes:
>[Generating ``little languages'' from a specification?]
John Levine (the moderator) writes:
>[How do you write a sufficiently complete description so a computer
> can understand it?]
See e.g.,
%A Charles Consel
%A Olivier Danvy
%T Static and Dynamic Semantics Processing
%J 18th Annual ACM Symposium on Principles of Programming Languages
(POPL 18)
%X Derive mini-Algol -> Scheme compiler from formal semantics. For
trivial programs, generates code about half the speed of Pascal/C.
(S1.1) [C]ompiling a program amounts to dividing the representation
of its formal meaning into compile time and run time forms, and to
reducing the former while emitting a repreobject code.
(S3.2) Every program is static (available at compile time) and the
store is dynamic (not available until runtime). Each valuation
function is static in its program argument. (The basis of compiling
via PE).
Addresses: compiling a program, creating an interpreted compiler,
creating a compiled compiler.
"Object code" is not necessarily code, can be code + data (e.g.,
constants). Their object code is Scheme.
It seems to me that mini-languages are particularly useful because they
give you a concise syntax for representing something. The little language
lets you say it more concisely or more clearly. It doesn't let you build
a better Turing Machine. Thus, little language compiler design consists
of mapping the higher-level constructs to lower-level constructs.
;-D on ( Gener rated ) Pardo
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.