Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!news.glorb.com!news.ripco.com!rahul.net!wasp.rahul.net!rahul.net!news.misty.com!news.iecc.com!nerds-end From: Gene Newsgroups: comp.compilers Subject: Re: Language Design Date: Tue, 26 Jul 2011 10:28:18 -0700 (PDT) Organization: Compilers Central Lines: 24 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-07-038@comp.compilers> References: <11-07-027@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: gal.iecc.com 1311799752 65670 64.57.183.58 (27 Jul 2011 20:49:12 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Wed, 27 Jul 2011 20:49:12 +0000 (UTC) Keywords: design Posted-Date: 27 Jul 2011 16:49:12 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: x330-a1.tempe.blueboxinc.net comp.compilers:214 On Jul 18, 4:16 pm, Billy Mays <81282ed9a88799d21e77957df2d84bd6514d9...@myhashismyemail.com> wrote: > I am trying to design a programming language for a simple processor > (16 bit, ~10 instructions, 16 registers). I am not sure what a > language actually needs in order to be more useful than pure assembly, > but is also reasonable to implement. ... > -- > Bill > [Rather than trying to invent yet another language, I'd retarget some >existing 16 bit C compiler. -John] The old Turbo Pascal 2.0 dialect was pretty remarkable. There was a version for Z80 (CP/M) and 8086 (MSDOS). I think the whole compiler was only 50K or so. The runtime was tiny (as it had to be), yet included floating point (6-byte proprietary), variable-length strings (up to 255 chars, not ANSI standard), sets over domains up to 255 in cardinality, primitive extensions to write memory and I/O ports, graphics (x86 only), an overlay system that was good enough to handle a 200K SLOC program for on the Z80, and probably some other stuff I'm foregetting. All this is to say that you could a lot worse than to re- implement this dialect of Pascal as well as it was in this case. Pascal is also straightforward to compile, especially if you don't allow nested functions/procedures (although Turbo did).