From: Chris Dollin Newsgroups: comp.compilers Subject: Re: Intermediate forms (again?): worthwhile? Date: Wed, 26 Jan 2011 17:51:17 +0000 Organization: Compilers Central Lines: 41 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-01-116@comp.compilers> References: <11-01-045@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: gal.iecc.com 1296442237 72194 64.57.183.58 (31 Jan 2011 02:50:37 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Mon, 31 Jan 2011 02:50:37 +0000 (UTC) Keywords: code, design Posted-Date: 30 Jan 2011 21:50:37 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Path: csiph.com!eeepc.pasdenom.info!news.pasdenom.info!news.dougwise.org!feed.ac-versailles.fr!nospam.fr.eu.org!usenet-fr.net!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!news.glorb.com!news2.glorb.com!news.glorb.com!news.ripco.com!rahul.net!wasp.rahul.net!rahul.net!news.misty.com!news.iecc.com!nerds-end Xref: csiph.com comp.compilers:984 Tony wrote: > Well, do tell what Pepper I has in common with C then. It's an imperative programming language with no special support for concurrency. > What compromises were made to the design because > of the choice of implementation? To the design of Pepper? None. Pepper was designed as a simplified Pop11; the implementation was required to fit the language. The first implementation was as a byte-coded interpreter (written in C); although it worked it was a tad slow [1]. The Pepper-to-C translator was built so as to have something rather faster, and in that it succeeded. As for the type system, that of Pepper and of C are pretty much as different as that of Lisp and C: for starters, Pepper has dynamic (aka latent | run-time | tagged) types. [I never got around to writing the garbage-collector either; again, I had some design sketches but never commited them to code. It wasn't that it couldn't be done, it was that I had other things to do.] Chris [1] Partly because the VM primitives were designed to map effectively into machine code, rather than being at the Pepper language level, because of an unfulfilled ambition to have Pepper running as native code. Since I had three different target architectures at the time (x86, PA-RISC, and ARM) this would have meant three different machine-code generators ... there's only one of me. -- Far-Fetched Hedgehog Nit-picking is best done among friends.