Group: function
Group: procedure and type-valued variables
Topic: abstract functions
Topic: function syntax definition
Topic: generic operations and polymorphism
Topic: interface type
Topic: object-oriented data types
Topic: object-oriented methods
Topic: object-oriented templates and containers
Topic: procedure valued variables
Topic: type algebras, typed lambda calculus, and type-complete languages
| |
Summary
A function signature identifies a function and the data types of its parameters. The signature may include the result type and thrown errors. A type or class signature lists the corresponding function signatures.
A function signature defines the function type. In functional languages, the function signature may be inferred.
The run-time system resolves polymorphic function calls by matching the actual arguments against the available function signatures. (cbb 7/06)
Subtopic: interface vs. implementation
Quote: because of Java's late binding it is easy to change methods and private variables; just need to retain old methods or their type signatures [»goslJ6_1997]
| Subtopic: type signature
Quote: a type signature is its name and the signatures of all operations that use that type [»demeA3_1979]
| Subtopic: message signature
Quote: assign a abstraction signature to each message; a query scans the signature file and rejects nonqualifying messages [»faloC7_1987]
| Subtopic: function signature
Quote: the signature of a Russell procedure is the list of signatures of its parameters
| Quote: in Guava every variable has a region type and every method has a region type signature
| Quote: use SAME to indicate derived types in method signatures [»fricA4_2000]
| Subtopic: function type
Quote: the type of a function includes the types and modes of calling its parameters and the types of its results; it includes the domain and range of the function [»straC8_1967]
| Quote: many types do not have explicit names; e.g., operator or function types [»kiebRB9_1973]
| Quote: a function type is a cross product of its argument types to its result type [»kiebRB9_1973, OK]
| QuoteRef: wirtN1_1971 ;;55 PROCEDURE ( ids:type; CONST id:type; VAR ids:type also FUNCTION,PROCEDURE local/literal definitions, type definitions variable definitions, procedure etc
| QuoteRef: wirtN1_1971 ;;58 FUNCTION id (param list): result-type
| QuoteRef: schuSA_1970 ;;12 procedures as a type value eg mode trigo is proc (real) real;
| Subtopic: type checking a function call
Quote: type checking in Russell consists of matching argument signatures with parameter signatures [»demeA3_1979]
| Quote: argument and parameter signatures match if identical after transformation using renaming, reordering, and deletion [»demeA3_1979]
| Subtopic: function overloading
Quote: Russell can overload existing operators if they have different argument signatures
| Quote: Dylan selects the function that best matches the arguments' type signature; may happen at compile time [»grayDN5_1998]
| Quote: an operator can have a polymorphic type, i.e., a union of signatures with different operand types [»kiebRB9_1973]
| Subtopic: expression signature, inferred type
Quote: each Russell expression has a signature identifying the operations that can be performed on the expression's value [»donaJ7_1985]
| Quote: all types may be inferred in CPL; allows any data source to be used as long as the inferred type and actual structure are compatible [»wongL9_2000]
| Subtopic: parameterized type
Quote: a scheme is a parameterized type that yields procedures, functions, types, and a signature [»demeA3_1979]
| Subtopic: problems with signatures
Quote: exception lists are too restrictive for function signatures; interacts with type system; preclude reuse; rebranding hides low-level errors; asynchronous exceptions [»buhrPA9_2000]
|
Related Topics
Group: function (12 topics, 232 quotes)
Group: procedure and type-valued variables (4 topics, 95 quotes)
Topic: abstract functions (11 items)
Topic: function syntax definition (17 items)
Topic: generic operations and polymorphism (67 items)
Topic: interface type (50 items)
Topic: object-oriented data types (29 items)
Topic: object-oriented methods (42 items)
Topic: object-oriented templates and containers (27 items)
Topic: procedure valued variables (34 items)
Topic: type algebras, typed lambda calculus, and type-complete languages (28 items)
|