HOME

TheInfoList



OR:

ELI is an interactive
array programming In computer science, array programming refers to solutions that allow the application of operations to an entire set of values at once. Such solutions are commonly used in computational science, scientific and engineering settings. Modern program ...
language system based on the
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
APL. It has most of the functions of the
International Organization for Standardization The International Organization for Standardization (ISO ; ; ) is an independent, non-governmental, international standard development organization composed of representatives from the national standards organizations of member countries. M ...
(ISO) APL standard ''ISO/IEC 13751:2001'', and also list for non-homogeneous or non-rectangular data, complex numbers, symbols, temporal data, and control structures. A scripting file facility is available to organize programs in a fashion similar to using #include in C, which also provides convenient data
input/output In computing, input/output (I/O, i/o, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, such as another computer system, peripherals, or a human operator. Inputs a ...
. ELI has dictionaries, tables, and a basic set of SQL-like statements. For performance, it has a
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
restricted to flat array programs. By replacing each APL character with one or two
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
characters, ELI retains APL's succinct and expressive way of array programming compared with MATLAB or Python, ELI encourages a dataflow programming style, where the output of one operation feeds the input of another. ELI is available without charge, as freeware, on
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, and
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
.


Version 0.3

ELI version 0.3, described as a stable release, was released on August 10, 2015. It integrates with a cross-platform IDE, ELI Studio, which provides a code editor with specialized functions to write and load ELI code. Three added widgets are used to monitor functions, variables, libraries and command history. Version 0.3 adds several new features. * Like: string match * Match * []PP: printing precision control * )time: performance measure * []: standard input * Date and time attributes * File handle: []open, []close, []write, and []get * Semicolon (;)


Example code

A line of ELI executes from right to left as a chain of operations; anything to the right of ‘//’ is a comment. Exclamation point (!) is an interval function. It can generate a vector of n integer from 1 to n. !10 1 2 3 4 5 6 7 8 9 10 The execution order of ELI is from right to left, and all primitive functions have equal precedence. 5 * 2 + 10 // from right to left, 5 * (2 + 10) 60 In the next example a function add is declared in a short function form. The arguments of the function can be either a scalar or a vector. // short function form add 1 add 2 // 1+2 3 1 add !10 // 1+(1..10) 2 3 4 5 6 7 8 9 10 11 The $ rotation operator returns the reverse order of a vector. $!10 // reverse 10 9 8 7 6 5 4 3 2 1 A 2-by-3 matrix (or higher dimension array, e.g., 2 3 4#!24) can be generated by # with left argument 2 3. 2 3#!6 // 2 dimension array (matrix) 1 2 3 4 5 6 In first line below the x is assigned with a vector from 1 to 20. Then, 1 = 2, x returns odd number True and even number False. The / is a primitive function for compression which picks up the value in x corresponding to the True values in its left argument. x <- !20 // 1..20 x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (1 = 2, x) / x // get odd numbers from x 1 3 5 7 9 11 13 15 17 19


File extensions

Two file extensions are used in ELI for exchanging and sharing code for different purposes: .esf and .eli. An ELI file with extension .esf is a script file which contains all methods and data. A simple way to create a script file is using the command )out. However, a clean workspace with no debugging or error information left is needed before a script file can be created. Later the command )fload can be used to reload the script file. )out MyScript )lib MyScript.esf )fload MyScript saved 2017.02.17 10:23:55 (gmt-5) An ELI file with extension .eli is an ELI workspace file which contains everything in a workspace. save and load are commands for workspace files. )save MyWorkspace )load MyWorkspace saved 2017.02.17 10:57:19 (gmt-5)


References


External links

*
Online documentation

YouTube channel
{{APL programming language APL programming language family Array programming languages