Book contents
- Frontmatter
- Contents
- List of Boxes
- Preface
- Part I Introduction
- Part II Action Notation
- Chapter 4 Basic
- Chapter 5 Data
- Chapter 6 Functional
- Chapter 7 Declarative
- Chapter 8 Imperative
- Chapter 9 Reflective
- Chapter 10 Communicative
- Part III Semantic Descriptions
- Part IV Conclusion
- Appendices
- Bibliography
- Symbol Index
- Concept Index
Chapter 7 - Declarative
Published online by Cambridge University Press: 19 January 2010
- Frontmatter
- Contents
- List of Boxes
- Preface
- Part I Introduction
- Part II Action Notation
- Chapter 4 Basic
- Chapter 5 Data
- Chapter 6 Functional
- Chapter 7 Declarative
- Chapter 8 Imperative
- Chapter 9 Reflective
- Chapter 10 Communicative
- Part III Semantic Descriptions
- Part IV Conclusion
- Appendices
- Bibliography
- Symbol Index
- Concept Index
Summary
Action notation includes a declarative action notation for specifying scopes of bindings.
Declarative actions are concerned with scoped information.
Chapter H illustrates the use of declarative action notation in the semantic description of declarations, expressions, and statements.
Declarative actions axe concerned with processing scoped information, which generally gets propagated further than transient information. The scoped information current at the start of an action is often current throughout the action—although it may get temporarily hidden by other scoped information within the action. It disappears at the end of its scope.
Scoped information represents the associations, called bindings, which declarations in programs establish between identifiers and entities such as constants, variables, procedures, etc. Implementations usually represent bindings by some form of symbol table.
Programming languages are often characterized as having static or dynamic scopes for bindings. The difference concerns whether or not it is possible to determine from the program text, before running the program with its input, which declarations establish the bindings of which identifiers. For efficiency, compilers extract the required information from the symbol table during compilation, so that it isn't needed when the compiled code is run.
The possibility of dynamic bindings only arises when the programming language contains procedures, or similar constructs, where the body of the procedure can be called from various parts of the program: the bindings current at each call might be different.
- Type
- Chapter
- Information
- Action Semantics , pp. 98 - 107Publisher: Cambridge University PressPrint publication year: 1992