Smaller C是一个简单且小巧的单遍C编译器,目前支持C89/ANSI C和C99之间大部分通用的C语言特性(减去了一些C89特性,增加了一些C99特性)。
当前它可以生成16位和32位的80386+汇编代码,用于NASM,然后可以将其汇编和链接成DOS、Windows、Linux和Mac OS X程序。 (您也可以使用YASM或FASM替代NASM)
编译器还支持MIPS CPU的代码生成(主要用于RetroBSD)。
该编译器能够自我编译。
核心编译器配有预处理器(ucpp)、链接器和编译器驱动程序(该驱动程序调用预处理器、核心编译器、汇编器和链接器,并支持类似gcc的选项)。
标准C库仍在开发中,接近完成。
有关最新详细信息,请参阅项目文档: https://github.com/alexfru/SmallerC/tree/master/v0100/doc
由于缺乏更好的讨论场所,您可以在此处讨论Smaller C: https://hackaday.io/project/5569-smaller-c
相关链接: NASM: http://nasm.us/ YASM: http://yasm.tortall.net/ FASM: http://flatassembler.net/ CWSDPMI: https://sandmann.dotster.com/cwsdpmi/ HX DOS Extender: https://web.archive.org/web/20141003032346/http://www.japheth.de/ RetroBSD: http://retrobsd.org/
基于/使用Smaller C的其他项目: "ROM C"(类似ROM Basic但使用C):https://hackaday.io/project/29198-native-c-pic32-color-video-on-tv FYS OS: http://www.fysnet.net/fysos.htm NewBasic编译器:http://fysnet.net/nbc.htm Sweet32 CPU和工具链:https://github.com/Basman74/Sweet32-CPU
C语言的规范性和其他有用文档: C99 + TC1 + TC2 + TC3, WG14 N1256: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf Dave Prosser的C预处理算法,由Diomidis D. Spinellis注释: http://www.spinellis.gr/blog/20060626/index.html C99理由说明: http://www.open-std.org/jtc1/sc22/wg14/www/docs/C99RationaleV5.10.pdf 新C标准:经济和文化评论: http://www.knosof.co.uk/cbook/cbook.html Dennis M. Ritchie的C语言发展史: https://www.bell-labs.com/usr/dmr/www/chist.html P.J. Plauger的标准C库: https://www.amazon.com/dp/0131315099