FAUST is a compiled language for real-time audio signal processing.
The name FAUST stands for Functional AUdio STream. Its programming model combines two approaches : functional programming and block diagram composition. You can think of FAUST as a structured block diagram language with a textual syntax.
What is FAUST intended for ?
FAUST is intended for developers who need to develop efficient C/C++ audio plugins for existing systems or full standalone audio applications. Thanks to some specific compilation techniques and powerful optimizations, the C++ code generated by the Faust compiler is usually very fast. It can generally compete with (and sometimes outperform) hand-written C code.
What does it look like ?
Programming with FAUST is somehow like working with electronic circuits and signals. A FAUST program is a list of definitions that defines a signal processor block-diagram : a piece of code that produces output signals according to its input signals (and maybe some user interface parameters).
How does it work ?
Faust is a compiled language translated to C++. In order to generate the most efficient code, the compilation is based on a semantic approach. Instead of compiling directly the block-diagram as described by the user, the idea is to compile its mathematical meaning (what it actually computes).