Modern computer languages allow a program to be designed as a series of independent program units or procedures. Arguments and parameters allow information to be passed to external procedures and, in the case of external subroutines, to return information to the original program.
Arguments are part of the calling statement, parameters are part of the procedure heading.
Local variables provide isolation between the main program and procedures, and between individual procedures. Any procedure can be called from any other procedure or from the main program. An external function unit performs some calculation and returns a string or numeric value that is assigned to the function name.