Malý-C - Small-C

Malý-C
Vývojáři Ron Cain, James E. Hendrix
První vydání 1980 ; Před 41 lety ( 1980 )
Napsáno Programovací jazyk C.
Typ Překladač
Licence Autorská práva, ale lze je sdílet

Small-C je podmnožina programovacího jazyka C , vhodná pro mikropočítače a vestavěné systémy s omezeným zdrojem , a implementace této podmnožiny. Implementace, která byla původně cenná jako časný překladač pro mikropočítačové systémy dostupné na konci 70. a začátku 80. let, byla také užitečná jako jednoduchý příklad pro výukové účely.

Původní kompilátor, napsaný v Small-C pro Intel 8080 Ronem Cainem, se objevil v květnu 1980 v časopise Dr. Dobb's Journal of Computer Calisthenics & Orthodontia . James E. Hendrix vylepšil a rozšířil původní kompilátor a napsal příručku Small-C Handbook . Ron bootstrapped Small-C na SRI International PDP 11 /45 Unix systému s účtem poskytnutých John Bass pro vývoj malé C. Poskytnutý zdrojový kód byl uvolněn se svolením správy do veřejné domény . Small-C byl důležitý pro malé počítače způsobem, který byl poněkud analogický významu GCC pro větší počítače. Stejně jako jeho Unix protějšky, kompilátor generuje assembler , který pak musí být přeložen do strojového kódu pomocí dostupného assembler .

Small-C je retargetable kompilátor . Portování Small-C vyžaduje pouze přepsání generátoru kódu back-end a volání rozhraní knihovny do operačního systému pro cílový procesor.

Podmnožina jazyků

„V květnu 1980 publikoval Dr. Dobb's Journal článek s názvem„ Malý C kompilátor pro 80. léta “, ve kterém Ron Cain představil malý kompilátor pro podmnožinu jazyka C. Nejzajímavější vlastností kompilátoru kromě jeho malé velikosti byl jazyk, ve kterém byl napsán - ten, který kompiloval. Byl to kompilátor sám! (I když je to dnes běžné, v té době to byl docela nový nápad.) S jednoduchým jednoprůchodovým algoritmem vygeneroval jeho kompilátor montážní jazyk pro procesor 8080. Protože byl malý, měl však svá omezení. Rozpoznával pouze znaky, celá čísla a pole jedné dimenze obou typů. Jediným zařízením pro ovládání smyčky bylo prohlášení while. Nebyly tam žádné logické operátory, takže Místo toho byly použity bitové logické operátory & (AND) a | (OR). Ale i s těmito omezeními to byl velmi schopný jazyk a radost z používání, zejména ve srovnání s jazykem assembleru.

Ron si uvědomil potřebu zlepšení a povzbudil mě, abych vytvořil druhou verzi, a v prosinci 1982 se také objevila v časopise Dr. Dobba. Nový kompilátor rozšířil Small C o (1) optimalizaci kódu, (2) inicializaci dat, (3) podmíněné kompilace, (4) třídu externího úložiště, (5) příkazy for, do / while, switch a goto, ( 6) kombinované operátory přiřazení, (7) logické operátory, (8) operátor doplňku, (9) blokování lokálních proměnných a (10) různé další funkce. V roce 1984 jsme s Ernestem Paynem vyvinuli a vydali pro kompilátor běhovou knihovnu kompatibilní s CP / M. Skládalo se z více než 80 funkcí a zahrnovalo většinu funkcí ve standardní I / O knihovně UNIX C - ty, které se týkaly prostředí CP / M. Stala se verzí 2.1 a předmětem Malé příručky C. "

Viz také

  • BDS C (1979) - C kompilátor pro systémy Z80 a 8080
  • MISOSYS C (1985) - C kompilátor pro TRS-80 (CPU Z80)
  • Tiny C (2002) - C kompilátor pro pomalé počítače x86 a ARM, které mají málo místa na disku

Varianty Small-C

Reference

Poznámky

  • Ron Cain, „Malý kompilátor jazyka C pro 80. léta“, Časopis Dr. Dobba , duben – květen 1980, s. 5–19
  • James E. Hendrix, The Small-C Handbook , Reston 1984, ISBN  0-8359-7012-4
  • James E. Hendrix, Malý C kompilátor: Jazyk, použití, teorie a 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

externí odkazy