Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
NESL
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Infobox programming language |name = NESL |logo = |paradigm = parallel, [[functional programming|functional]], [[array programming|array]] |year = 1993 |designer = |developer = SCandAL project |latest release version = 3.1 |latest release date = November 1995 |typing = |implementations = |dialects = |influenced_by = |influenced = |license = permissive license similar to the [[ISC license|ISC]] and [[MIT License|X11]] licenses }} '''NESL''' is a parallel [[programming language]] developed at [[Carnegie Mellon]] by the SCandAL project and released in 1993. It integrates various ideas from [[parallel algorithm]]s, [[functional (programming)|functional programming]], and [[array programming]] languages. The most important new ideas behind NESL are *'''Nested data parallelism''': this feature offers the benefits of [[data parallelism]], concise code that is easy to understand and debug, while being well suited for irregular algorithms, such as algorithms on trees, graphs or sparse matrices. *'''A language based performance model''': this gives a formal way to calculate the work and depth of a program. These measures can be related to running time on parallel machines. The main design guideline for NESL was to make parallel programming easy and portable. Algorithms are typically significantly more concise in NESL than in most other parallel programming languages, and the code closely resembles high-level pseudocode. NESL handles nested data parallelism by using the [[flattening transformation]] to convert nested data parallelism to flat data parallelism. This works by storing nested vectors as the nested data and a segment descriptor of vector lengths, separately.<ref>{{cite journal|last=Blelloch|first=Guy|title=NESL: A Nested Data-Parallel Language|year=1995}}</ref> This flattening transform, however, can increase the asymptotic work and space complexity of the original program, leading to a much less efficient result.<ref>{{cite journal|last=Spoonhower|first=Daniel |author2=Harper |author3=Blelloch |author4=Gibbons |title=Space profiling for parallel functional programs|year=2008}}</ref> ==Influences== NESL heavily influenced Data Parallel [[Haskell (programming language)|Haskell]].<ref name=dph>{{cite web|last=Jones|first=Simon Peyton|title=Data Parallel Haskell|website=[[YouTube]] |date=23 April 2010 |url=https://www.youtube.com/watch?v=NWSZ4c9yqW8|accessdate=6 September 2011}}</ref> ==See also== * [[Cilk]] ==References== {{Reflist}} ==External links== *[https://www.cs.cmu.edu/~scandal/nesl.html NESL homepage] [[Category:Array programming languages]] [[Category:Functional languages]] [[Category:Concurrent programming languages]] [[Category:Common Lisp (programming language) software]] {{compu-lang-stub}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Compu-lang-stub
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Prog-lang-stub
(
edit
)
Template:R shell
(
edit
)
Template:Reflist
(
edit
)