  We present a general framework for balancing expressions (terms) in form of
so called tree straight-line programs. The latter can be seen as circuits over
the free term algebra extended by contexts (terms with a hole) and the
operations which insert terms/contexts into contexts. It is shown that for
every term one can compute in DLOGTIME-uniform TC$^0$ a tree straight-line
program of logarithmic depth and size $O(n/\log n)$. This allows reducing the
term evaluation problem over an arbitrary algebra $\mathcal{A}$ to the term
evaluation problem over a derived two-sorted algebra
$\mathcal{F}(\mathcal{A})$. Several applications are presented: (i) an
alternative proof for a recent result by Krebs, Limaye and Ludwig on the
expression evaluation problem is given, (ii) it is shown that expressions for
an arbitrary (possibly non-commutative) semiring can be transformed in
DLOGTIME-uniform TC$^0$ into equivalent circuits of logarithmic depth and size
$O(n/\log n)$, and (iii) a corresponding result for regular expressions is
shown.
