uIP is probably the smallest implementation of the TCP/IP protocol stack ever written in a high level language; the code footprint is on the order of a few kilobytes and RAM usage is on the order of a few hundred bytes. uIP is intended to be used in embedded systems running low end 8- and 16-bit microcontrollers.
ucpp is a C preprocessor. It is designed to be quick and light, but still fully compliant to the ISO standard 9899:1999, also known as C99. ucpp can be compiled as a stand-alone program or linked to some other code; in the latter case, ucpp will output tokens, one at a time, on demand, as an integrated lexer. ucpp operates in two modes: in lexer mode, ucpp is linked to some other code and outputs a stream of tokens where each call to the lex() function will yield one token; in non-lexer mode, ucpp preprocesses text and outputs the resulting text to a file descriptor. If linked to some other code, the cpp() function must be called repeatedly, otherwise ucpp is a stand-alone binary.