Procedures, parameters, and abstraction: Separate concerns (Q1113659): Difference between revisions

From MaRDI portal
Import240304020342 (talk | contribs)
Set profile property.
Set OpenAlex properties.
Property / full work available at URL
 
Property / full work available at URL: https://doi.org/10.1016/0167-6423(88)90062-7 / rank
 
Normal rank
Property / OpenAlex ID
 
Property / OpenAlex ID: W1999659898 / rank
 
Normal rank

Revision as of 14:33, 19 March 2024

scientific article
Language Label Description Also known as
English
Procedures, parameters, and abstraction: Separate concerns
scientific article

    Statements

    Procedures, parameters, and abstraction: Separate concerns (English)
    0 references
    0 references
    1988
    0 references
    The paper argues that the notions of procedure, parametrization, and abstraction can be separated and that the result could be of practical use. The separation relies essentially on the embedding of procedural abstractions (specifications) within programs. The copy rule of ALGOL 60 gives significance to the procedure calls which are not yet executable code but only the specification, the specification itself being the text to copy. Using the standard axiomatic framework of Hoare and Dijkstra, the author proves that ``substitution'' by value, by result and by value/result are monotonic with respect to the (order) relation of refinement defined over the programs. The ``substitution'' by name cannot be treated, but one difficulty is located: aliasing is shown to be a non- monotonic construction. The aim of the paper is to give an orthogonal set of rules for the axiomatic treatment of procedures, parametrization, and abstraction. The independence of rules seems to both open up new possibilities and introduce new limitations for the considered notions.
    0 references
    parameter passing
    0 references
    ALGOL's copy rule
    0 references
    weakest pre-condition
    0 references
    post- condition
    0 references
    axiomatic semantics
    0 references
    specifications
    0 references
    procedure calls
    0 references

    Identifiers