A main program unit can be compiled, linked, and executed by itself, whereas a SUB or FUNCTION program unit cannot be executed unless it is linked with a main program unit. A main program unit can be delimited with the PROGRAM and END PROGRAM statements; however, these statements are optional.