Small-C

Small-C

In computing, Small-C is both a subset of the C programming language, suitable for resource-limited microcomputers and embedded systems, and an implementation of that subset. Originally valuable as an early compiler for microcomputer systems available during the late 1970s and early 1980s, the implementation has also been useful as an example simple enough for teaching purposes.

The original compiler, written in Small-C for the Intel 8080 by Ron Cain, appeared in the May 1980 issue of "Dr. Dobb's Journal". James E. Hendrix improved and extended the original compiler, and wrote "The Small-C Handbook". Ron bootstrapped Small-C on the SRI International PDP 11/45 Unix system with an account provided by John Bass for Small C development (with management permission, provided the compiler sources were released as public domain). Small-C was important for tiny computers in a manner somewhat analogous to the importance of GCC for larger computers. Just like its Unix counterparts, the compiler generates assembler code, which then must be translated to machine code by an available assembler.

Porting Small-C requires only that the back-end code generator be rewritten for the target processor.

As of 2007, Small-C — now almost twenty-five years old — is still being used, ported, hacked and studied by people who want to learn how a compiler is written.

# cpcn.zip by CAPROCK SYSTEMS, version N, 1982;
# cc02.zip;
# smallc-1.1 c80 for VMS 1982 by Jeff Lomicka (also c80rtl for library);
# sm88-1.0.zip, smc88dos, labelled by "Byte" Magazine by Rick Grehan, ca. 1988 and 1992;
# SmallC.lha by Willi Kusche, 1988 to Amiga computers;
# smallc V04 for the RT-11 by John Wilson, August 1984;
# smallc22.zip;
# smallmac.zip, the macro assembler written in Small-c for the PC;
# 8xccb.zip, 8xccb5.zip;
# zinc8-30.zip;
# v072.zip;
# smallc.zip for swtp computer;
# [http://mdfs.net/System/C/BBC/ Small-C] by A. J. Travis for the BBC computer, 1989;
# sm88-1.0.zip, smc88dos, labelled by Byte Magazine by Rick Grehan, ca. 1988 and 1992;
# small_c.zip for the ZSHELL by Jeremy Dewey;
# smallc v4.1 for the Usgard calculator? by Jeremy Dewey,
# ccGB.zip or cc-b2.zip, version b2, by Alan Baldwin, 1990. (GB is GameBoy, with a Z80 processor);
# csc.zip, ver. 1.0, March 30, 1996, originally detailed in DDJ by Andy Yuen;
# c80dos.zip;
# accash.zip, v4.0 by lord_nexus@usa.net, for the TI-85 calculator, 1984;
# small-c-linux.tar.gz, v3.0R1 by Chris Lewis, includes several back-ends, 1984;
# smallc-mot.arc v2.1;
# zcc-096, zcc_16;
# smcnt30, smcnt31: ported to Windows, based on 2.2 rev 117, by Hans Walheim June 1998;
# smallc11.zip by John Dumas, 68HC11 processor, February 1987;
# cug163.zip;
# cug309.zip;
# cug211_01.zip for Flex OS on 6809 processors;
# sccavr.zip, v2.4.7 for the Atmel AVR processors, by Ron Kreymborg, ca. 1984;
# smallc-1.2 DOS cross-compiler for CP/M by Bob Keys; (includes an editor, loader, cp/m emulator, and z80 assembler)
# smallc v1.1 for CP/M-86 by Bob M. White, 1982;
# smallcp.zip v1.0, Small-C/Plus, from SIG/M vol. 224 with Z80 floating point by R M Yorston, 1990;
# the original version written for the Intel 8080 processor;
# Z88DK Small-C cross compiler is capable of generating code for many Zilog Z80–based computers
# [http://www.geocities.com/SiliconValley/Way/4588/scc6502.html scc6502] Small-C cross compiler by I. A Curtis, July 1997. Hosted on Unix/Linux to generate executables for LUnix (operating system for the C-64)

References

* Ron Cain, "A Small C Compiler for the 8080's", "Dr. Dobb's Journal", April-May 1980, pp. 5-19
* James E. Hendrix, "The Small-C Handbook", Reston 1984, ISBN 0-8359-7012-4
* James E. Hendrix, "A Small C Compiler: Language, Usage, Theory, and Design", M & T Books 1988, ISBN 0-934375-88-7
* James E. Hendrix, "Small C Compiler", M & T Books 1990, ISBN 1-55851-124-5

External links

* [http://www.cpm.z80.de/small_c.html Several implementations of Small-C]
* [http://www.bebits.com/app/2678 A Small-C compiler for Game Boy]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Small — can refer to the following:* Something very gracious * Something of low size. * Minuscule, or lower case, is the small form (case) of a letter * SMALL, an ALGOL like programming language * A term to describe smaller aircraft for purposes of air… …   Wikipedia

  • small — small, little, diminutive, petite, wee, tiny, teeny, weeny, minute, microscopic, miniature can all mean conspicuously below the average in magnitude, especially physical magnitude. Small (opposed to large) and little (opposed to big, great) are… …   New Dictionary of Synonyms

  • Small — (sm[add]l), a. [Compar. {Smaller}; superl. {Smallest}.] [OE. small, AS. sm[ae]l; akin to D. smal narrow, OS. & OHG. smal small, G. schmal narrow, Dan. & Sw. smal, Goth. smals small, Icel. smali smal cattle, sheep, or goats; cf. Gr. mh^lon a sheep …   The Collaborative International Dictionary of English

  • Small — ist der Familienname von: Aaron Small (* 1971), US amerikanischer Baseballspieler Albion Woodbury Small (1854–1926), US amerikanischer Soziologe Brendon Small (* 1976), US amerikanischer Schauspieler und Musiker Chris Small (* 1973), schottischer …   Deutsch Wikipedia

  • small — [smôl] adj. [ME smal, narrow, slender < OE smæl, akin to Ger schmal, narrow < IE base * (s)mēlo , smaller animal: see MAL ] 1. little in size, esp. when compared with others of the same kind; not large or big; limited in size 2. a) little… …   English World dictionary

  • Small-C — es una especificación para un subconjunto del lenguaje de programación C, conveniente para microcomputadores limitados en recursos y para sistema embebidos. También se refiere a la implementación de ese subconjunto de instrucciones. Originalmente …   Wikipedia Español

  • small — [smɔːl ǁ smɒːl] adjective 1. not large in size or amount: • Boeing doesn t make a small, 100 seat plane. • The recent fare increases are small. • For a small fee, we can sell your shares for you. 2. unimportant or easy to deal with: • The company …   Financial and business terms

  • small — O.E. smæl slender, narrow, small, from P.Gmc. *smalaz (Cf. O.S., Dan., Swed., M.Du., Du., O.H.G. smal, O.Fris. smel, Ger. schmal narrow, Goth. smalista smallest, O.N. smali small cattle, sheep ), perhaps from a PIE root * (s)melo smaller animal …   Etymology dictionary

  • small — ► ADJECTIVE 1) of less than normal or usual size. 2) not great in amount, number, strength, or power. 3) not fully grown or developed; young. 4) insignificant; unimportant. 5) (of a business or its owner) operating on a modest scale. ► NOUN… …   English terms dictionary

  • small — 〈[smɔ:l] Abk.: S〉 klein (als Kleidergröße) [engl.] * * * small [smɔ:l ] <indekl. Adj.> [engl. small = klein]: klein (als Kleidergröße; Abk.: S). * * * Small   [smɔːl],    1) Adam, südafrikanischer Schriftsteller, * Wellington ( …   Universal-Lexikon

  • Small — Small, adv. 1. In or to small extent, quantity, or degree; little; slightly. [Obs.] I wept but small. Chaucer. It small avails my mood. Shak. [1913 Webster] 2. Not loudly; faintly; timidly. [Obs. or Humorous] [1913 Webster] You may speak as small …   The Collaborative International Dictionary of English

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”