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.

#61on PLDB 20Years 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 ..
Operator Overloading
MultiLine Comments /* A comment */ /* */
Print() Debugging writeln
Module Pattern module
Line Comments // A comment //
Iterators iter
Inheritance
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
File Imports X import use
hasGlobalScope X
Dynamic Typing X
Case Insensitive Identifiers X

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

Built with Scroll v154.3.0

canWriteTotDisk true