| ZPL | |
|---|---|
| Paradigm | Array |
| Developer | Chamberlainet al. atUniversity of Washington |
| First appeared | 1993 (1993) |
| License | MIT License |
| Website | www.cs.washington.edu[1] |
| Influenced by | |
| C | |
| Influenced | |
| Chapel[1] | |
Z-level Programming Language is anarray programming language designed to replace C and C++ programming languages in engineering and scientific applications.[2] Because its design goal was to obtaincross-platform high performance, ZPL programs run fast on bothsequential andparallel computers. Highly-parallel ZPL programs are simple and easy to write because it exclusively usesimplicit parallelism.
Originally calledOrca C, ZPL was designed and implemented during 1993–1995 by the Orca Project of the Computer Science and Engineering Department at theUniversity of Washington.
ZPL uses the array abstraction to implement adata parallel programming model. This is the reason why ZPL achieves such good performance: having noparallel directives or other forms of explicit parallelism, ZPL exploits the operational trait that when aggregate computations are described in terms of arrays, many scalar operations must be (implicitly) performed to implement the array operations. Thisimplied computation can be automatically allotted to different processors to achieve concurrency: Parallelism arises from the semantics of the array operations.
ZPL is translated into a conventionalabstract syntax tree representation on whichprogram analysis andprogram optimizations are performed.ANSI C code is generated as the object code. This C program (which is machine independent because it implements certain operations in abstract form) is then compiled using the native C compiler on thetarget machine with custom libraries optimized to the specific platform.
The creators of ZPL were: Brad Chamberlain, Sung-Eun Choi, E Christopher Lewis, Calvin Lin, Jason Secosky, Larry Snyder, and W. Derrick Weathersby with assistance from Ruth Anderson, A.J. Bernheim, Marios Dikaiakos, George Forman, and Kurt Partridge.