A thread is represented by a Common Anchor Area (CAA). All thread- and enclave-related resources can be located either directly within the CAA or through the CAA.
An enclave is one or more executable programs that contain one or more separately-compiled bound procedures (also known as compilation units). The executable program that contains the main routine is known as the root load module. An enclave can consist of multiple executable programs when a dynamic call is run within the enclave. Fetch mechanisms, such as the C fetch() function, introduce a new executable program into the application. However, it typically behaves differently than dynamic calls in today's implementation, in so far as the scope of static external data is concerned. An executable program can exist in a variety of forms. It can be a mixture of an HLL or assembler procedure with Language Environment routines. It can also be a strictly Language Environment library module that does not contain any user-written code.
Situations exist where member subprograms are called from operating environment functions such as SORT, QMF™ or assembler language routines without Language Environment register conventions. Member languages must either disallow this form of specification, or be able to detect this form of access and perform whatever is necessary to re-establish the Language Environment environment.