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
- N
-
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) $
-
NIAL
- Language type:
F - Functional or lambda-based
- Description:
NIAL, the nested interactive array language,
is a quasi-functional language with some
procedural features. It is intended for
application development.
Nial offers high-level features intended to
make it easy for the programmer to
build complex data structures and
analysis functions. The primitive data types
in Nial includes integers, reals, strings,
and atoms. The primary aggregate
data types is the rectangular array.
Arrays can be heterogenous, dynamic, and
built up in a variety of ways.
Nial supports conventional procedural
control-flow constructs like while loops
and conditional expressions.
Various functional programming constructs
like currying, transformers,
and composition are also
supported.
Nial was originally designed and
implemented at Queen's
University in Ontario, CA. It is now
developed and sold by NIAL Systems
Limited. The company offers free
evaluation downloads.
- Origin:
M. A. Jenkins et al, Queen's University Ontario, 1981-86.
- See Also:
- Remarks:
One of the design goals of Nial was to
use simple laws and identities with
consistent properties that always
hold true. This precision, together
with Nial's nested control structures and
powerful array operators, is supposed to
make Nial programs compact and easy to
explain. Like any very powerful, compact
language (e.g. APL) the programs can
sometimes get
very dense and opaque.
The Q'Nial system is a portable
interactive interpreter
for Nial; it can be considered analogous
to a Mathematica 'notebook' or an S session.
- Links:
-
- Date:
- Sample code:
- 2 entries retrieved.
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.