a list of commands typed into one or more text files, using a high-level language.
a collection of high-level language program statements in a text file.
the actual written code of a program before it is translated into machine code.