Chapel (programming language)

Chapel
ParadigmObject-oriented
Partitioned global address space
Parallel programming
Designed byDavid Callahan, Hans Zima, Brad Chamberlain, John Plevyak
DeveloperHewlett Packard Enterprise (previously Cray Inc.)
First appeared2009; 15 years ago (2009)
Stable release
2.0.0 / March 21, 2024; 7 months ago (2024-03-21)
Typing disciplinestatic
inferred
Platformmultiplatform, including Amazon Web Services, HPE Cray EX
OSMac OS, Linux, POSIX, Windows (with Cygwin), NetBSD
LicenseApache License 2.0
Filename extensions.chpl
Websitechapel-lang.org
Influenced by
Ada, C#,[1] C, Fortran, C++, Java, HPF, ZPL, Cray MTA / XMT extensions to C and Fortran.[2]

Chapel, the Cascade High Productivity Language, is a parallel programming language that was developed by Cray,[3] and later by Hewlett Packard Enterprise which acquired Cray. It was being developed as part of the Cray Cascade project, a participant in DARPA's High Productivity Computing Systems (HPCS) program, which had the goal of increasing supercomputer productivity by 2010. It is being developed as an open source project, under version 2 of the Apache license.[4]

The Chapel compiler is written in C and C++ (C++14). The backend (i.e. the optimizer) is LLVM, written in C++. Python 3.7 or newer is required for some optional components such Chapel’s test system and c2chapel, a tool to generate C bindings for Chapel. By default Chapel compiles to binary executables, but it can also compile to C code, and then LLVM is not used. Chapel code can be compiled to libraries to be callable from C, or Fortran or e.g. Python also supported. Chapel supports GPU programming through code generation for NVIDIA and AMD graphics processing units.[5]

  1. ^ "Chapel spec (Acknowledgments)" (PDF). Cray Inc. 2015-10-01. Retrieved 2016-01-14.
  2. ^ Chamberlain, Bradford L. "A Brief Overview of Chapel" (PDF). Cray Inc. Retrieved 22 April 2015.
  3. ^ Lightfoot, David E. (2006). Modular programming languages: 7th Joint Modular Languages Conference. Springer. p. 20. ISBN 978-3-540-40927-4.
  4. ^ "Chapel license information". chapel-lang.org. Retrieved November 15, 2015.
  5. ^ "Chapel Technote: GPU Programming". Hewlett Packard Enterprise. 2023-09-28. Retrieved 2023-11-03.