Organization¶
This specification is organized as follows:
- Chapter [Scope], Scope, describes the scope of this specification.
- Chapter [Notation], Notation, introduces the notation that is used throughout this specification.
- Chapter [Organization], Organization, describes the contents of each of the chapters within this specification.
- Chapter [Acknowledgments], Acknowledgements, offers a note of thanks to people and projects.
- Chapter [Language_Overview], Language Overview, describes Chapel at a high level.
- Chapter [Lexical_Structure], Lexical Structure, describes the lexical components of Chapel.
- Chapter [Types], Types, describes the types in Chapel and defines the primitive and enumerated types.
- Chapter [Variables], Variables, describes variables and constants in Chapel.
- Chapter [Conversions], Conversions, describes the legal implicit and explicit conversions allowed between values of different types. Chapel does not allow for user-defined conversions.
- Chapter [Expressions], Expressions, describes the non-parallel expressions in Chapel.
- Chapter [Statements], Statements, describes the non-parallel statements in Chapel.
- Chapter [Modules], Modules, describes modules in Chapel., Chapel modules allow for namespace management.
- Chapter [Functions], Functions, describes functions and function resolution in Chapel.
- Chapter [Tuples], Tuples, describes tuples in Chapel.
- Chapter [Classes], Classes, describes reference classes in Chapel.
- Chapter [Records], Records, describes records or value classes in Chapel.
- Chapter [Unions], Unions, describes unions in Chapel.
- Chapter [Ranges], Ranges, describes ranges in Chapel.
- Chapter [Domains], Domains, describes domains in Chapel. Chapel domains are first-class index sets that support the description of iteration spaces, array sizes and shapes, and sets of indices.
- Chapter [Arrays], Arrays, describes arrays in Chapel. Chapel arrays are more general than in most languages including support for multidimensional, sparse, associative, and unstructured arrays.
- Chapter [Iterators], Iterators, describes iterator functions.
- Chapter [Generics], Generics, describes Chapel’s support for generic functions and types.
- Chapter [Input_and_Output], Input and Output, describes support for input and output in Chapel, including file input and output..
- Chapter [Task_Parallelism_and_Synchronization], Task Parallelism and Synchronization, describes task-parallel expressions and statements in Chapel as well as synchronization constructs, atomic variables, and the atomic statement.
- Chapter [Data_Parallelism], Data Parallelism, describes data-parallel expressions and statements in Chapel including reductions and scans, whole array assignment, and promotion.
- Chapter [Locales_Chapter], Locales, describes constructs for managing locality and executing Chapel programs on distributed-memory systems.
- Chapter [Domain_Maps], Domain Maps, describes Chapel’s domain map construct for defining the layout of domains and arrays within a single locale and/or the distribution of domains and arrays across multiple locales.
- Chapter [User_Defined_Reductions_and_Scans], User-Defined Reductions and Scans, describes how Chapel programmers can define their own reduction and scan operators.
- Chapter [Memory_Consistency_Model], Memory Consistency Model, describes Chapel’s rules for ordering the reads and writes performed by a program’s tasks.
- Chapter [Interoperability] describes Chapel’s interoperability features for combining Chapel programs with code written in different languages.
- Appendix [Syntax], Collected Lexical and Syntax Productions, contains the syntax productions listed throughout this specification in both alphabetical and depth-first order.