Following on from this popular question about K&R-style argument specification, in which we discussed the history of routines with formal argument lists not including type information (i.e., as in K&R C), I'd like to ask when the more modern form of having type information in the argument list appeared. This is basically a 'first' type question, but I think it's something we can pin down reasonably well.
An answer to the previous question mentioned that such a style was seen in Algol 68, but that was not the first such.
Some definitions and constraints:
- I'm asking about languages which have the concept of typed variables
- The language must permit the declaration of variables with a specific type
- The language need not necessarily require the declaration of all variables - i.e., FORTRAN-style defaults are allowed
- The language must have routine declarations of some kind, that include a list of formal (or 'dummy') arguments
- The language must permit the types of the formal arguments to be specified
- The language need not necessarily require the specification of all argument types
The question is specifically asking for a language in which the type information for the formal arguments, if explicit, is included in the argument list itself, and not as separate statements or clauses. If the language distinguishes 'functions' and 'subroutines', either of the two will suffice.