Dynamic code generation allows programmers to use run-time information in o
rder to achieve performance and expressiveness superior to those of static
code. The 'C (Tick C) language is a superset of ANSI C that supports effici
ent and high-level use of dynamic code generation. LC provides dynamic code
generation at the level of C expressions and statements and supports the c
omposition of dynamic code at run time. These features enable programmers t
o add dynamic code generation to existing C code incrementally and to write
important applications (such as "just-in-time" compilers) easily. The arti
cle presents many examples of how 'C can be used to solve practical problem
s. The tee compiler is an efficient, portable, and freely available impleme
ntation of 'C. tee allows programmers to trade dynamic compilation speed fo
r dynamic code quality: in some applications, it is most important to gener
ate code quickly, while in others code quality matters more than compilatio
n speed. The overhead of dynamic compilation Is on the order of 100 to 600
cycles per generated instruction, depending on the level of dynamic optimiz
ation. Measurements show that the use of dynamic code generation can improv
e performance by almost an order of magnitude; two- to four-fold speedups a
re common. In most cases, the overhead of dynamic compilation is recovered
in under 100 uses of the dynamic code; sometimes it can be recovered within
one use.