Разработчики) | Рон Кейн, Джеймс Э. Хендрикс |
---|---|
Начальная версия | 1980 |
Написано в | Язык программирования C |
Тип | Компилятор |
Лицензия | Защищено авторским правом, но доступно для совместного использования |
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 [ править ]
- Z88DK - реализация Cross Small-C для микрокомпьютеров на базе Z80
- cc65 - реализация Cross Small-C для компьютеров 6502
- Deep Blue C - родной Small-C для 8-битного семейства Atari
- AJTravis - родной язык Small-C для BBC Micro [2]
Ссылки [ править ]
- ^ Джеймс Э. Хендикс. "Введение". Компилятор Small-C: язык, использование, теория и дизайн . M & T Books 1988 / Сеть разработчиков журналов доктора Добба 2005.
- ^ "Компиляторы 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 доктора Добба