A Procedure is a unit of code outside of the main execution code. But it can be executed by an invoking statement in the main execution code. There are 3 aspects about procedures: 1. Defining a procedure. 2. Invoking a procedure. 3. Exchanging data between the main execution code and a procedure.