  The aim of a probabilistic output analysis is to derive a probability
distribution of possible output values for a program from a probability
distribution of its input. We present a method for performing static output
analysis, based on program transformation techniques. It generates a
probability function as a possibly uncomputable expression in an intermediate
language. This program is then analyzed, transformed, and approximated. The
result is a closed form expression that computes an over approximation of the
output probability distribution for the program. We focus on programs where the
possible input follows a known probability distribution. Tests in programs are
not assumed to satisfy the Markov property of having fixed branching
probabilities independently of previous history.
