The signature of a procedure is a description of the types of its arguments (in order) and the type of its result. Often a signature is written in Cartesian product form:
|sqrt :||real → real|
|mod :||integer X integer → integer|
Procedure signatures must be put in the symbol table when compiling languages that require type-checking of procedure arguments.
In languages such as Ada, which allow separate compilation of procedures but require argument type checking, type signatures must be part of the output file so that type checking of procedure calls can be performed by the link editor.