16.3 Major Components of SML# Programs
Before defining the syntax and semantics of these declarations and interfaces, we define those of the following elements that construct these declarations and interfaces.
- Lexical structures
-
The definition of keywords and identifiers (Chapter 17).
- Expressions
-
The major components of programs made from lexical components. They have static types and generates dynamic values (Chapter 19).
- Types
-
Used for type annotations of expressions and identifiers and the definition of interfaces (Chapter 18).
- Patterns
-
Denoting the structure of values received by functions and value bindings. (Chapter 20).
- Scoping rules
-
The definition of scopes of identifiers and dynamic value bindings. (Chapter 21).
- SQL expressions
-
The expressions denoting SQL commmands that is seamlessly integrated into SML#. Similarly to other expressions, they have polymorphic types and can be used with other expressions. (Chapter 22).
Then, we define the syntax and semnatics of core declarations in Chapter 23 and those of module declarations in Chapter 24.