A template engine is software (usually a software library) for generating textual output from a "template" (description of the output) and "data" (variables in the generated output). Usually used as a "view" portion in a ModelViewController based system that generate textual views (i.e. a WebApplication) as a means of clean separation of the presentation from the data.