Маленький-C - Small-C

Маленький-C
Разработчики) Рон Кейн, Джеймс Э. Хендрикс
Первый выпуск 1980 ; 41 год назад ( 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. Булевых операторов не было, поэтому Вместо этого использовались побитовые логические операторы & (AND) и | (OR). Но даже с этими ограничениями это был очень эффективный язык, и его приятно было использовать, особенно по сравнению с языком ассемблера.

Признавая необходимость улучшений, Рон посоветовал мне выпустить вторую версию, и в декабре 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. "

Смотрите также

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

Варианты Small-C

Рекомендации

Заметки

  • Рон Кейн, "Небольшой компилятор Си для 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

Внешние ссылки