Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
NESL
- Language type:
P - Parallel or Multi-programming
- Description:
NESL is a data-parallel functional
programming language intended to be highly
portable across different parallel
computer architectures, easy to use, and
efficient to compile.
The basic data types supported by NESL
are: integers, reals, strings, and sequences (vectors).
The sequences are heavily used for
defining parallelism, NESL has special
operators and syntax for operating on
all elements of a sequence and on each
element of a vector.
In addition to its parallel computation
constructs, NESL also supports conventional
selection (if-then-else) and iteration
(for, while) control-flow constructs.
The NESL function library provides a
rich set of sequence operations, plus
string manipulation, I/O, system
interface, and windowing functions.
Currently, NESL runs only on UNIX and
related systems (or parallel computers
attached to such systems); its windowing
support is currently implemented only
for X11.
NESL is usually compiled; the compilation
process automatically generates a mapping
from the computation defined by the NESL
code onto the processors of the target
computer. Variables and functions in
NESL are not strongly typed, but the compiler
seems to perform extensive
type inference at compile-time.
Releases 3.1 and later of NESL also
include a lightweight interpreter for
use in training and debugging. The NESL
compiler is written in C, and the
interpreter is implemented in Common
Lisp.
Implementations of NESL are
available from CMU. The documentation
and a tutorial are also available on
the web.
- Origin:
Guy Blelloch, Carnegie-Mellon, 1992-93
- See Also:
- Remarks:
NESL is a project of SCandAL group at
CMU. They are working on porting the
language to a variety of parallel
architectures. They also have a
system for translating NESL programs
into multi-threaded Java programs.
NESL has special features for animating
the execution of parallel algorithms,
a helpful feature for presenting papers
at conferences and for
computer science education. Some live
animations can be seen at the NESL
pages at CMU.
NESL has been the experimental vehicle
for research in provable performance
bounds in parallel algorithms, as well
as parallel-processing compiler research.
- Links:
-
- Date:
- Sample code:
% Fits a line to a set of of points %
% using a simple regression algorithm, %
% return line and goodness of fit. %
% (from code examples with NESL 3.1) %
function line_fit(x, y) =
let
n = float(#x);
xa = sum(x)/n;
ya = sum(y)/n;
Stt = sum({(x - xa)^2: x});
b = sum({(x - xa)*y: x; y})/Stt;
a = ya - xa*b;
chi2 = sum({(y-a-b*x)^2: x; y});
siga = sqrt((1.0/n + xa^2/Stt)*chi2/n);
sigb = sqrt((1.0/Stt)*chi2/n)
in
(a, b, siga, sigb) $
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.