Procedures and functions are named PL/SQL blocks that perform specific tasks. Procedures can return values using OUT and IN OUT parameters but are not required to, while functions must return a value of a specified datatype. Procedures are executed using EXECUTE or within other procedures, while functions can also be used in SELECT statements. Parameters can be used to pass values into and return values from both procedures and functions.