Abstract

Having formally defined the notions of programs and their executions over the abstract models of computers it is an important question how programs can be characterized. The first possibility is to consider how the programs are built up , i.e. what programming constructs participate in their definitions and how. The number of cycles or the number of constructs built into one another can be determined. However, this type of characterization is purely syntactic, of course, and considers programs only as texts. But the essence of programs is hidden in their execution, which takes place in the data environment and is represented by the definition of semantics of programming languages. Therefore, the semantic characterization of programs is necessary to reflect the pragmatic essence and to answer the question of what a program does . For this characterization, appropriate properties concerning program execution should be selected. According to the computation theory developed in Part I, these properties should concern the computation states from which the computational paths are formed and also to the traces themselves. For example a property like “the program terminates” refers to the finiteness of computation paths and also to the existence of a “terminal” state. However, this tight connection of properties with computation states suggests another view. Namely, the semantic characterization of programs should start with the appropriate definition of the program semantics, i.e. either of the denotations or of the traces. Since we aim to develop the programming theory in the scope of classical first -order logic, this definition should be stated using appropriate logical tools. Having given the logical definition of semantics, the same language will be appropriate to characterize the denotations or the traces. However, before starting to realize our view, which prefers the definition of the semantics to that of the description of program properties, we give a rough survey of the main properties.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call