Named PL/SQL programs like procedures and functions can take parameters of different types - IN, OUT, and IN OUT. IN parameters pass data into the program but cannot be modified within it. OUT parameters are assigned a value within the program and returned. IN OUT parameters can be modified within the program. Parameters are declared without length or precision and can have default values. Procedures differ from functions in that procedures do not return a value while functions must return a value using the RETURN statement.