Маленькая буква C

Подмножество языка программирования
Маленькая буква C
Разработчик(и)Рон Кейн, Джеймс Э. Хендрикс
Первоначальный выпуск1980 ; 44 года назад ( 1980 )
Написано вязык программирования С
ТипКомпилятор
ЛицензияЗащищено авторским правом, но может быть распространено

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

Оригинальный компилятор, написанный Роном Каином на языке Small-C для Intel 8080 , появился в выпуске журнала Dr. Dobb's Journal за май 1980 года . Джеймс Э. Хендрикс улучшил и расширил оригинальный компилятор и написал The Small-C Handbook . Рон загрузил Small-C в систему SRI International PDP 11/45 Unix с учетной записью, предоставленной Джоном Бассом для разработки Small 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. [1]

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

  • BDS C (1979) – компилятор C для систем Z80 и 8080
  • MISOSYS C (1985) — компилятор C для TRS-80 (процессор Z80)
  • Tiny C (2002) – компилятор C для медленных компьютеров x86 и ARM с небольшим объемом дискового пространства

Варианты Small-C

Ссылки

  1. ^ Джеймс Э. Хендикс. «Введение». Компилятор Small-C: язык, использование, теория и проектирование. M & T Books 1988 / Dr. Dobb's Journal Developer Network 2005.
  2. ^ "Компиляторы C для BBC Computer". Mdfs.net.

Примечания

  • Рон Кейн, «Небольшой компилятор 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 
  • Комментарии Рона Кейна о создании Small-C
  • Несколько реализаций Small-C
  • Собственный компилятор для BBC Computer
  • Загрузка образа iso-CDROM с ресурсами Small-C доктора Добба
Взято с "https://en.wikipedia.org/w/index.php?title=Small-C&oldid=1225175078"