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:
Get a full dump of the dictionary:
List of Names
- Language type:
Euphoria is an interpreted block-structured
language for PCs. It is intended for general
application development and game
The data model used by Euphoria is quite
simple: all data elements are either atoms
or sequences. All atoms are numeric: chars,
ints, or floats. Sequences can be any length
and can contain atoms and other sequences.
A string is simply a sequence of characters.
More complex data structures can be built
up from nested sequences (as in Lisp or Scheme).
Indexing and slicing are important
features, as is the ability to distribute
scalar operations over sequence members.
Euphoria performs type checking,
to the extent that it can with only two
types, and also enforces sequence index
bounds and function return values.
Lastly, Euphoria allows a programmer to
define abstract data types operationally,
by declaring for each such type a
boolean function that determines type
With its line-based syntax and simple
data model, Euphoria is intended to
be a very easy
language to learn.
Euphoria supports rather
conventional sequential control features:
conditionals and loops. It does not
support any advanced features like
threads, exceptions, or higher-order
The Euphoria language system
and documentation may be downloaded free
from its web site (see below), with
modest documentation and some demo programs
included. Information is also available
at other Euphoria advocacy web sites.
The current implementation
runs only on Windows, DOS,
R. Craig, Rapid Deployment Software, 1993?
- See Also:
Euphoria stands for
End User Programming with Hierarchical
Objects for Robust Interpreted Applications.
The acronym is relevant
but perhaps a bit forced,
especially since the language does not
include a comprehensive exception handling
The Euphoria documentation claims that it
is extremely fast, due to an internal
architecture that avoids data copying and
performs on-the-fly storage reclamation.
This is also the approach used by Perl and
To allow its use for general application
programming under Windows, Euphoria
allows the programmer to load any Win32
dynamic link library and call functions
- Sample code:
-- Prime sieve benchmark, adapted from Euphoria 2.0beta demos
constant ON = 1, OFF = 0, SIZE = 5000, BATCH = 20
integer prime, start, count, still_prime
count = 0
flags = repeat(ON, SIZE)
for i = 1 to SIZE do
still_prime = flags[i]
if still_prime then
prime = 2 * i
prime = prime + 1
start = prime + i
for k = start to SIZE by prime do
flags[k] = OFF
count = count + 1
atom t, cycles, p
cycles = 0
t = time()
while time() < t + 30 do -- test for 30 seconds
for iter = 1 to BATCH do
p = sieve()
cycles = cycles + BATCH
t = time() - t
printf(1, "%6.1f sieves per second\n", cycles / t)
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 firstname.lastname@example.org
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.