Related articles |
---|
Wrestling with phase 1 of a C compiler luser.droog@gmail.com (luser droog) (2022-09-07) |
Re: Wrestling with phase 1 of a C compiler luser.droog@gmail.com (luser droog) (2022-09-09) |
Re: Wrestling with phase 1 of a C compiler luser.droog@gmail.com (luser droog) (2022-09-11) |
Wrestling with phase 1 of a C compiler christopher.f.clark@compiler-resources.com (Christopher F Clark) (2022-09-12) |
Re: Wrestling with phase 1 of a C compiler gah4@u.washington.edu (gah4) (2022-09-12) |
Re: Wrestling with phase 1 of a C compiler christopher.f.clark@compiler-resources.com (Christopher F Clark) (2022-09-13) |
Re: Wrestling with phase 1 of a C compiler luser.droog@gmail.com (luser droog) (2022-09-14) |
Re: Wrestling with phase 1 of a C compiler gah4@u.washington.edu (gah4) (2022-09-14) |
Re: Wrestling with phase 1 of a C compiler luser.droog@gmail.com (luser droog) (2022-09-15) |
From: | Christopher F Clark <christopher.f.clark@compiler-resources.com> |
Newsgroups: | comp.compilers |
Date: | Tue, 13 Sep 2022 14:55:18 +0300 |
Organization: | Compilers Central |
References: | 22-09-001 22-09-004 22-09-005 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="31319"; mail-complaints-to="abuse@iecc.com" |
Keywords: | parse, history, macros |
Posted-Date: | 14 Sep 2022 16:25:35 EDT |
I never used the PL/I preprocessor myself. However, at my first job (at
SofTech), my mentor (Carl Martin) made some PL/I macros that *loosely*
translated a subset of Jovial into Multics PL/I. It was still PL/I
semantics, but Jovial syntax. That allowed us to write our Jovial
compilers in that subset of Jovial and get it working before it could
become self-hosting.
But notice that these were mostly minor syntactic changes and no error
checking, no semantic changes, etc. It was only used for one project and
one team and two compilers (one targeting Multics and the other
targeting the Interdata 8/32). So, the fact that it wasn't very robust
wasn't an issue.
This is very different than trying to make a functional library in an
imperative language.
----------
On a related note, I have heard stories from C++ compiler
implementors about the various template libraries that have been created
which attempt to do "Turing machine" style (NP-complete) computations via
types and parameters, where the users wonder why the compilation process
takes much longer than running the resultant program.
This is the kind of mess one makes when one sees a hammer and treats screws
as nails. Yes, with enough force you can pound a screw into wood (or a
wall) but the result is NOT a good fastener. Screws are threaded for a
reason and nails are not for the complementary reason. Different semantics.
I rarely create my own C++ templates nor Rust macros for that reason. It
is too easy to create things that look clever but are essentially
undecipherable. As the saying goes: "With great power comes great
responsibility."
Kind regards,
Chris
--
******************************************************************************
Chris Clark email: christopher.f.clark@compiler-resources.com
Compiler Resources, Inc. Web Site: http://world.std.com/~compres
23 Bailey Rd voice: (508) 435-5016
Berlin, MA 01503 USA twitter: @intel_chris
------------------------------------------------------------------------------
Return to the
comp.compilers page.
Search the
comp.compilers archives again.