Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Small-C является как подмножеством языка программирования C , подходящим для микрокомпьютеров с ограниченными ресурсами и встроенными системами , так и реализацией этого подмножества. Первоначально ценный как ранний компилятор для микрокомпьютерных систем, доступный в конце 1970-х - начале 1980-х, реализация также была полезна в качестве примера, достаточно простого для учебных целей.

Оригинальный компилятор, написанный на языке Small-C для Intel 8080 Роном Кейном, появился в майском выпуске журнала доктора Добба по компьютерной гимнастике и ортодонтии за 1980 год . Джеймс Э. Хендрикс улучшил и расширил исходный компилятор и написал The Small-C Handbook . Рон бутстрапированная Small-C на SRI International PDP 11 /45 Unix системы с учетной записью , представленной Джона Басса для развития малого C. Предоставленный исходный код был выпущен с разрешения руководства в общественное достояние . [ необходима цитата ]Small-C был важен для крошечных компьютеров в той же манере, что и GCC для больших компьютеров. Как и его аналоги в Unix , компилятор генерирует код ассемблера , который затем должен быть переведен в машинный код доступным ассемблером .

Small-C - это компилятор с возможностью перенастройки . Для переноса Small-C требуется только, чтобы генератор внутреннего кода и вызовы интерфейса библиотеки к операционной системе были переписаны для целевого процессора.

Подмножество языков [ править ]

«В мае 1980 года журнал доктора Добба опубликовал статью под названием« Небольшой компилятор C для 8080-х », в которой Рон Кейн представил небольшой компилятор для подмножества языка C. Самой интересной особенностью компилятора, помимо его небольшого размера, была язык, на котором он был написан - тот, на котором он был скомпилирован. Это был самокомпилятор! (Хотя сегодня это было обычным явлением, в то время это была довольно новая идея.) С помощью простого однопроходного алгоритма его компилятор сгенерировал язык ассемблера для процессора 8080. Небольшой размер, однако, имел свои ограничения. Он распознавал только символы, целые числа и одномерные массивы любого типа. Единственным устройством управления циклом был оператор while. Булевых операторов не было, поэтому Вместо них использовались побитовые логические операторы & (И) и | (ИЛИ). Но даже с этими ограничениямиэто был очень способный язык, и им было приятно пользоваться, особенно по сравнению с языком ассемблера.

Признавая необходимость улучшений, Рон призвал меня выпустить вторую версию, и в декабре 1982 года она также появилась в журнале доктора Добба. Новый компилятор дополнил Small C (1) оптимизацией кода, (2) инициализацией данных, (3) условной компиляцией, (4) классом внешнего хранилища, (5) операторами for, do / while, switch и goto, ( 6) комбинированные операторы присваивания, (7) логические операторы, (8) оператор дополнения до единицы, (9) блочные локальные переменные и (10) различные другие особенности. Затем в 1984 году мы с Эрнестом Пейном разработали и опубликовали совместимую с CP / M библиотеку времени выполнения для компилятора. Он состоял из более чем 80 функций и включал большинство из стандартной библиотеки ввода-вывода UNIX C - те, которые относятся к среде CP / M. Это стало версией 2.1 и предметом The Small C Handbook. " [1]

См. Также [ править ]

  • BDS C (1979) - компилятор C для систем Z80 и 8080
  • MISOSYS C (1985) - компилятор C для TRS-80 (Z80 CPU)
  • Tiny C (2002) - компилятор C для медленных компьютеров x86 и ARM, имеющих мало места на диске

Варианты Small-C [ править ]

Ссылки [ править ]

  1. ^ Джеймс Э. Хендикс. "Введение". Компилятор Small-C: язык, использование, теория и дизайн . M & T Books 1988 / Сеть разработчиков журналов доктора Добба 2005.
  2. ^ "Компиляторы C для компьютера BBC" . Mdfs.net.

Заметки [ править ]

  • Рон Кейн, "Небольшой компилятор Си для 8080-х", журнал доктора Добба , апрель – май 1980 г., стр. 5–19
  • Джеймс Э. Хендрикс, Справочник Small-C , Рестон 1984, ISBN 0-8359-7012-4 
  • Джеймс Э. Хендрикс, Маленький компилятор C: язык, использование, теория и дизайн , M&T Books 1988, ISBN 0-934375-88-7 
  • Джеймс Э. Хендрикс, Small C Compiler , M&T Books 1990, ISBN 1-55851-124-5 

Внешние ссылки [ править ]

  • Комментарии Рона Кейна о создании Small-C
  • Несколько реализаций Small-C
  • Собственный компилятор для BBC Computer
  • Загрузка iso-образа компакт-диска с ресурсами Small-C доктора Добба