Organization¶
This specification is organized as follows:
- Chapter Scope describes the scope of this specification.
- Chapter Notation introduces the notation that is used throughout this specification.
- This Chapter Organization describes the contents of each of the chapters within this specification.
- Chapter Acknowledgments offers a note of thanks to people and projects.
- Chapter Language Overview describes Chapel at a high level.
- Chapter Lexical Structure describes the lexical components of Chapel.
- Chapter Types describes the types in Chapel and defines the primitive and enumerated types.
- Chapter Variables describes variables and constants in Chapel.
- Chapter Conversions describes the legal implicit and explicit conversions allowed between values of different types.
- Chapter Expressions describes the non-parallel expressions in Chapel.
- Chapter Statements describes the non-parallel statements in Chapel.
- Chapter Modules describes modules in Chapel, which allow for namespace management.
- Chapter Procedures describes functions and function resolution in Chapel. It focuses on procedure functions.
- Chapter Tuples describes tuples in Chapel.
- Chapter Classes describes classes in Chapel, which offer reference semantics.
- Chapter Records describes records in Chapel, which offer value semantics.
- Chapter Unions describes unions in Chapel.
- Chapter Ranges describes ranges in Chapel.
- Chapter 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 describes arrays in Chapel. Chapel arrays are more general than in most languages including support for multidimensional, sparse, associative, and unstructured arrays.
- Chapter Iterators describes iterator functions.
- Chapter Generics describes Chapel’s support for generic functions and types.
- Chapter Input and Output describes support for input and output in Chapel, including file input and output.
- Chapter 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 describes data-parallel expressions and statements in Chapel including reductions and scans, whole array assignment, and promotion.
- Chapter Locales describes constructs for managing locality and executing Chapel programs on distributed-memory systems.
- Chapter 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 describes how Chapel programmers can define their own reduction and scan operators.
- Chapter 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.