![]() |
Up | ![]() |
TOC |
| << None | < 1 Euphoria Programming Language v4.0 | Up: 1 Euphoria Programming Language v4.0 | 1.2 An important message for all C/C++ programmers... > | 2 Euphoria License >> |
1.1 Introduction
Welcome to Euphoria! End User Programming with Hierarchical Objects for Robust Interpreted Applications.
Euphoria has come a long way since v1.0 was released in July 1993 by Rapid Deployment Software (RDS). There are now enthusiastic users around the world.
1.1.1 Yet Another Programming Language?
Euphoria is a very high-level programming language. It is unique among a crowd of conventional languages.
1.1.2 First, Euphoria delivers the "expected" features of a modern language:
- open source
- free for personal and commercial use
- produces royalty-free, stand-alone, programs
- multi-platform -- Windows, Linux, FreeBSD, and OSX
- provides a choice of multi-platform gui toolkits: IUP, GTK, wxWindows
- features a Windows IDE and gui library written in Euphoria
- colored-syntax editors, profiling, and tracing of code
- dynamic memory allocation and efficient garbage collection
- interfacing to existing C libraries and databases
- well-documented, lots of example source-code, and an enthusiastic forum
- edit and run convenience
1.1.3 Euphoria is unique
What makes Euphoria unique is a design that uses just two basic data-types -- atom and sequence, and two 'helper' data-types -- object and integer.
- An atom is single numeric value (either an integer or floating point)
- A sequence is a list of zero or more objects.
- An object is a variant type in that it can hold an atom or a sequence.
- An integer is just a special form of atom that can only hold integers. You can use the integer type for a performance advantage in situations where floating point values are not required.
What follows from this design are some advantages over conventional languages:
- the language syntax is smaller -- and thus easier to learn
- the language syntax is consistent -- and thus easier to program
- routines are more generic -- a routine used for strings may also be applied to any data structure
- a higher level view of programming -- because sequences encompass conventional lists, arrays, tables, tuples, ..., and all other data-structures.
- sequences are dynamic -- you may create and destroy at will -- and modify them to any size and complexity
- it supports both static data typing and dynamic data typing.
1.1.4 Euphoria has qualities that go beyond the elegance of sequences
- Euphoria programs are considerably faster than conventional interpreted languages -- Euphoria makes a better website server
- Euphoria programs can be translated then compiled as C programs -- fast programs become even faster
- Euphoria lets you write multi-tasking programs -- independent of the platform you are using
- Euphoria has a coherent design -- Euphoria programmers enjoy programming in Euphoria
1.1.5 As a first programming language:
- Easy to learn, easy to program
- No limits as to what you can program
- Euphoria programming skills will enhance learning other languages
1.1.6 As an extension to languages you already know:
- A fast, flexible, and powerful language
- Euphoria, the language you will prefer to program in
1.1.7 But, my favorite language is ...
You will find that Euphoria programmers are also knowledgeable in other languages. I find that the more tools you have (saws and hammers, or programming languages) the richer you are. Picking the correct tool is part of the art of programming. It will remain true that some people can program better in their favorite language rather than an arguably superior language.
Give Euphoria a try, and discover why it has enthusiastic supporters.
1.1.8 Products
This Euphoria Interpreter, Binder, and Translator package is free for anyone to use.
Using the Euphoria Binder is used to create stand-alone programs.
The Euphoria Translator converts Euphoria-source into C-source. This allows Euphoria programs to be compiled by a standard C compiler to make even faster stand-alone programs.
You can freely distribute the Euphoria interpreter, and any other files contained in this package, in whole or in part, so anyone can run a Euphoria program that you have developed. You are completely free to distribute any Euphoria programs that you write.
1.1.9 Requirements
To run the WIN32 version of Euphoria, you need Windows 95 or any later version of Windows. It runs fine on XP and Vista.
To run the Linux version of Euphoria you need any reasonably up-to-date Linux distribution, that has libc6 or later. For example, Red Hat 5.2 or later will work fine.
To run the FreeBSD version of Euphoria you need any reasonably up-to-date FreeBSD distribution.
To run the Mac OS X version of Euphoria, you need any reasonably up-to-date Intel based Mac.
1.1.10 Disclaimer
Euphoria is provided "as is" without warranty of any kind. In no event shall Rapid Deployment Software be held liable for any damages arising from the use of, or inability to use, this product.
1.1.11 Discover Euphoria
More information on Euphoria may be found at OpenEuphoria.org, along with an active discussion forum.
Download Euphoria from the Euphoria Web site. You will also find source-code for example programs and library files.
1.1.12 Conventions used in the manual
Euphoria has multiple interpreters, the main one being eui.
- On windows platforms you have two choices. If you run eui then a console window is created. If you run euiw then no console is created--making it suitable for GUI applications.
The manual will only reference eui in examples and instructions; the reader is left to choose the correct interpreter.
Euphoria runs on many platforms. When operating specific issues must be described you will see these descriptions:
- "Windows" will be a general reference to a family of operating systems that includes WIN/95/ME/98/XP/NT/Vista/7/... You will see the constant WIN32 used for Windows specific code.
- "Unix" will be a general reference to the family operating systems that includes Linux/FreeBSD,Mac OS X/... You will see the constant UNIX used for Unix specific code. You may also see "*nix" used to describe this group of operating systems.
Directory names in Windows use \ separators, while Unix systems use /. Unix users should substitute / when they examine example code.
Operating system names are often trademarks. There is no intent to infringe on their owner rights.


