Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!gatech!bloom-beacon!oberon!poisson.usc.edu!mlinar
From: mlinar@poisson.usc.edu (Mitch Mlinar)
Newsgroups: comp.lang.c,comp.lang.misc
Subject: Re: Small-C
Message-ID: <3433@oberon.USC.EDU>
Date: Sat, 18-Jul-87 01:26:59 EDT
Article-I.D.: oberon.3433
Posted: Sat Jul 18 01:26:59 1987
Date-Received: Sat, 18-Jul-87 19:10:33 EDT
References: <3452@ihlpg.ATT.COM> <213@xrxns.UUCP>
Sender: nobody@oberon.USC.EDU
Reply-To: mlinar@poisson.usc.edu.UUCP (Mitch Mlinar)
Organization: University of Southern California, Los Angeles
Lines: 50
Keywords: Byte Works, Inc., Small-C,
Xref: mnetor comp.lang.c:3141 comp.lang.misc:551

In article <213@xrxns.UUCP> dupre@spitfire.UUCP (Frank Dupre) writes:
>In article <3452@ihlpg.ATT.COM> rre@ihlpg.ATT.COM (Velveteen Rabbit Corps) writes:
>>
>>But, what is Small-C?  Just how much of standard K&R C does it 
>>implement or leave out? 
>>
>>Roger Espinosa
>>ihnp4!ihlpg!rre
>
> [ some good information ]
>
>It should be noted that these version were from the Intel 8080/
>Zilog Z80, i.e., CP/M machines.  Version appeared for the Intel
>8088/8086 - 80x86 as 'commerical' products, notably Datalight's
>Small-C.
>

In fact, nearly EVERY 8-bit compiler on the market (Aztec, Software
Toolworks, Manx, etc.) was based upon Small-C.  The only three exceptions
I know about to date are BDS-C (which was before Small-C), Mix C (which
is just awful in 8-bit), and CZ (a Z80 assembly based compiler).

>
> [ LOTS more good stuff by Frank ]
>

The current versions of Small-C support 2 dimensional arrays and even
limited structures, but 
    - do not support passing anything other than char, int, addresses, or
      pointers on the stack (no struct)
    - lousy initialization
    - no floating point or bit fields
    - no union
    - limited complexity (stuff like  char *(foo[6])(i,j)  will fail)
    - limited library (as in almost none)

BUT in defense of Small-C (which I highly recommend if you want to see the
SOURCE to a compiler), it is FREE and a LOT of commercial packages STOLE
it (that's what I call it), added and/or fixed a few things, and stamped
their own label on it.  With the exception of Software Toolworks C/80 (only
$49), the rest are overpriced for the amount of ownership.  But, Manx at
one time also included the source to the compiler for a extra $25 (above its
$80), so that might be a better way to go.  Nobody includes source in IBM
that I know about (for commercial C).

Again, if you want to learn a little about compilers, just working with
Small-C a few weeks will give you a good feel of the issues, complexity, and
headaches of writing a compiler.  You might also have some fun.

-Mitch