SML# Document Version 4.0.0
16 The SML# Structure

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.