Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

Chapel

< >

Chapel, aka Cascade High Productivity Language, is an open source programming language created in 2004 by David Callahan and Hans Zima and Brad Chamberlain and John Plevyak.

#62on PLDB 22Years Old 212Repos
Download source code:
git clone https://github.com/chapel-lang/chapel
Homepage · REPL · Try It Online · Download · Source Code · Spec · Blog · Wikipedia · Subreddit · Twitter · Release Notes · Demo Video · Docs

Chapel, the Cascade High Productivity Language, is a parallel programming language developed by Cray. It is 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 the year 2010. It is being developed as an open source project, under version 2 of the Apache license.. Read more on Wikipedia...


Example from hello-world:
writeln("Hello World");
Example from Linguist:
writeln("Hello, world!"); // print 'Hello, world!' to the console
Chapel Keywords
_ align atomic begin break by class cobegin coforall config const continue delete dmapped do domain else enum export extern for forall if in index inline inout iter label let local module new nil on otherwise out param proc record reduce ref return scan select serial single sparse subdomain sync then type union use var when where while yield zip

Language features

Feature Supported Example Token
Case Sensitivity ✓
Binary Literals ✓ // 0[bB][01]+
Integers ✓ // [0-9]+
Floats ✓ // (\d*\.\d+)([eE][+-]?[0-9]+)?i?
Hexadecimals ✓ // 0[xX][0-9a-fA-F]+
Octals ✓ // 0[oO][0-7]+
While Loops ✓ while do
Type Parameters ✓
Type Inference ✓
hasTryCatch ✓ try catch
Switch Statements ✓ select
Structs ✓ record
Strings ✓ "Hello world" "
Static Typing ✓
Standard Library ✓
References ✓ ref
Range Operator ✓ ..
Disk Output ✓
Operator Overloading ✓
MultiLine Comments ✓ /* A comment */ /* */
Print() Debugging ✓ writeln
Module Pattern ✓ module
Line Comments ✓ // A comment //
Iterators ✓ iter
Inheritance ✓
File Imports ✓ import use
Hexadecimals ✓
Generics ✓
Functions ✓ proc
Function Overloading ✓
hasForLoops ✓ for
hasForEachLoops ✓ foreach
Floats ✓ real
Type Casting ✓ :
Exceptions ✓ throw throws
hasEscapeCharacters ✓
Enums ✓ enum color { red, green, blue=3 };
hasDynamicSizedArrays ✓
Default Parameters Pattern ✓
Constructors ✓ proc init
Constants ✓ param
Conditionals ✓ if then else
Comments ✓
Classes ✓ class
hasBoundedCheckedArrays ✓
Booleans ✓ bool true false true false
Bitwise Operators ✓
Binary Literals ✓
Async Await ✓ begin sync
Assignment ✓ = =
hasArraySlicingSyntax ✓
canReadCommandLineArgs ✓
Units of Measure X
Semantic Indentation X
hasRequiredMainFunction X
Increment and decrement operators X
hasGlobalScope X
Dynamic Typing X
Case Insensitive Identifiers X

- Build the next great programming language · Add · Add Prompt · Issues · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements

Built with Scroll v178.2.3