Topic: environment variables
Topic: input or output parameters
Topic: parameter passing by argument list
Topic: parameter passing by name
Topic: parameter passing by keyword or position
Topic: parameter passing by message
Topic: parameter passing by reference
Topic: parameter passing by value
Topic: parameter passing by value-result
Topic: parameters as argument place holders
Group: function
Group: type checking
Group: type declaration
Group: variables
Topic: abstraction by name
Topic: abstraction in programming language
Topic: binding of names to objects
Topic: data type as a set of variables
Topic: evaluation in an environment
Topic: function definition
Topic: function results
Topic: global declarations and variables
Topic: local declaration of data
Topic: macros
Topic: names as place holders
Topic: pattern components
Topic: procedure valued variables
Topic: roles of a relationship
Topic: shared objects
Topic: symbolic representation
Topic: type parameter
Topic: variable as function that accesses an object's value
| |
Summary
Parameters replace data objects by symbols thereby turning a program into an abstract form. Parameters are similar to declarations in that both associate a type with a symbolic placeholder. If a type is a set of operations then a parameter may specify a 'new' type consisting of just needed operations. This leaves parameter representation unspecified while protecting argument access.
In procedures and functions, parameters are variables corresponding to function call arguments. In formal function theory, parameters are called bound variables. Since parameters provide entry to a procedure's scope a parameter may result in aliasing or other scope anomalies. For instance keyword parameters are declared within a procedure but defined outside. Fortunately parameters usually indicate constants and variables, and not complicated expressions. Parameters can indicate any data object including temporaries, events, data types, and declarations. (cbb 5/80)
Subtopic: parameter as changeable
Quote: represent what does not change by a function and represent what changes by the function's arguments [»fregG_1879]
| Quote: a preset parameter is evaluated at load time; a program parameter is placed immediately after the subroutine call [»wilkMV_1951]
| Subtopic: parameter as abstraction
Quote: build complex constraints from simple ones by abstraction: recursive embedding, parameterization, and type declaration [»deutLP1_1981]
| Quote: use parameters with library subroutines; creates a large, multi-address order code [»wheeDJ6_1949]
| Quote: in a type-complete language, any expression can be parameterized with respect to any free name
| Quote: with type-completeness, any name that can be declared can also be a parameter [»demeA_1980]
| Quote: in a type-complete language, parameterization and application are universally applicable [»demeA_1980]
| Quote: with type-completeness, can define declaration in terms of parameter/argument bindings
| Subtopic: parameter as initialized variable
Quote: in C++, argument passing and returned values are identical to initialization of variables [»stroB_1991]
| Quote: parameter and declaration conventions should be consistent [»tennRD_1975]
| Quote: a variable is an abstraction of an operand [»cbb_1973, OK]
| Subtopic: parameter as modifier
Quote: an APT statement uses major-word/modifier; e.g., goto/setp, and L1=line/pt1,pt2 [»browSA11_1963, OK]
| Quote: modifiers for a few properties are useful for other properties [»rossDT3_1957]
| QuoteRef: seedH_1971 ;;159 in RPG, user indicators defined by external job control switch
| Subtopic: parameter as type signature
Quote: in Russell, a parameter can be anything with a signature, e.g., values, procedures, and types [»demeA3_1979]
| Quote: the signature of a Russell procedure is the list of signatures of its parameters
| Subtopic: parameter as interface
Quote: define parameters as interfaces instead of classes; greater flexibility without copy operations [»blocJ_2001]
| Quote: use interface types for parameters, return values, variables, and fields
| Subtopic: parameter as branch
Note: a branch parameter is a code offset into an activation record [»cbb_2000, OK]
| Subtopic: design
Quote: use at most three parameters; do not use many parameters with the same type [»blocJ_2001]
| Subtopic: context vs. parameters
Quote: instead of parameters, a macro can use its left and right context; arbitrary modifications (search outward from call) [»granCA12_1971, OK]
| Subtopic: validated arguments
Quote: a function interface should lead to correct code; avoid multiple returns, error values, and multipurpose functions; allow strong argument validation [»maguS_1993]
| Subtopic: thunk
Quote: a thunk stores the address of a parameter into a known location for calling a procedure [»ingePZ1_1961]
| Subtopic: parameter aliasing
Quote: a variable should not be passed twice as distinct parameters; prohibited in standard FORTRAN [»hoarCA_1974]
| Quote: Fortran guarantees that multiple array arguments do not overlap; allows spectacular savings on vector hardware [»stroB_1994]
| Subtopic: examples
Quote: in a segmented SL5 procedure, arguments used for initialization and element selection [»hansDR3_1978a]
| QuoteRef: zahnCT_1974 ;;177 passing parameters with events eg table_match (int match_index) : s1 in case label definition and within do loop ...then table_match (i)
| Subtopic: global variables, objects
Quote: with object-oriented programming, long argument lists and global variables become local state [»stroB_1994]
| Quote: global variables are essential for customization; e.g., 'comment start' for recognizing the start of a comment in text [»stallRM6_1981]
| Quote: users can view and modify global variables if the names are known at run-time
| Subtopic: avoid parameters
Quote: keyword arguments are most useful in poorly written code; functions should have at most two arguments
| Quote: a routine should not include parameters for options; e.g., use move routine instead of a parameter for position [»meyeB9_1990]
| Quote: new SUIT objects given a random location; user may modify it dynamically using hot keys [»pausR10_1992]
|
Group: parameters
Topic: environment variables (5 items)
Topic: input or output parameters (5 items)
Topic: parameter passing by argument list (6 items)
Topic: parameter passing by name (11 items)
Topic: parameter passing by keyword or position (13 items)
Topic: parameter passing by message (31 items)
Topic: parameter passing by reference (11 items)
Topic: parameter passing by value (5 items)
Topic: parameter passing by value-result (10 items)
Topic: parameters as argument place holders (15 items)
Related Topics
Group: function (12 topics, 232 quotes)
Group: type checking (12 topics, 392 quotes)
Group: type declaration (5 topics, 110 quotes)
Group: variables (10 topics, 128 quotes)
Topic: abstraction by name (29 items)
Topic: abstraction in programming language (47 items)
Topic: binding of names to objects (19 items)
Topic: data type as a set of variables (11 items)
Topic: evaluation in an environment (35 items)
Topic: function definition (25 items)
Topic: function results (7 items)
Topic: global declarations and variables (33 items)
Topic: local declaration of data (11 items)
Topic: macros (22 items)
Topic: names as place holders (4 items)
Topic: pattern components (15 items)
Topic: procedure valued variables (34 items)
Topic: roles of a relationship (8 items)
Topic: shared objects (13 items)
Topic: symbolic representation (26 items)
Topic: type parameter (34 items)
Topic: variable as function that accesses an object's value (21 items)
|