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.