There are two main types of language processing activities: program generation and program execution. Program generation aims to automatically generate a program in a target language from a source program through a program generator. Program execution can occur through either translation, which translates a source program into an equivalent target program, or interpretation, where an interpreter reads and executes the source program statement-by-statement.