ELI (programming language): Difference between revisions

Content deleted Content added
KolbertBot (talk | contribs)
m Bot: HTTP→HTTPS (v475)
Line 8:
[http://archive.vector.org.uk/art10501180 ELI: a simple system for array programming]</ref>
|logo =
|paradigm = [[arrayArray programming|array]]
|year = 2011
|designer = Wai-Mee Ching
|developer = Hanfeng Chen<ref name="mirror">[http://www.sable.mcgill.ca/~hanfeng.c/eli/ ELI - mirror site in the Sable lab at McGill University]</ref> (Rapidsoft)
|released = {{Start date and age|2011}}
|latest release version = 0.3
|latest release date = August{{Start 10,date and age|2015|08|10}}
|typing = [[dynamic typing|dynamic]]
|implementationsprogramming language = [[C++]], [[Qt (software)|Qt]]
|operating_systemplatform = [[CrossIA-platform32]], [[x86-64]]
|operating system = [[Cross-platform]]: [[Windows]], [[Linux]], [[macOS]]
|file_extfile ext = .esf .eli
|website = {{URL|fastarray.appspot.com}}
|implementations =
|dialects =
|influenced_byinfluenced by = [[APL (programming language)|APL]], [[Q (programming language from Kx Systems)|Q]]
}}
 
'''ELI'''<ref name="website">[https://fastarray.appspot.com/ ELI - official site] Hosted on Google App Engine</ref> is an interactive [[array programming]] computer language system based on the [[programming language]] [[APL (programming language)|APL]]. It has most of the functionalityfunctions of the [[International Organization for Standardization]] (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 <code>#include</code> in [[C (programming language)|C]], which also provides convenient data input/output. ELI has dictionaries, tables, and a basic set of [[SQL]]-like statements. For performance, ELIit offershas a compiler restricted to flat array programs.
 
By replacing each [[APL syntax and symbols|APL character]] with one or two [[ASCII]] characters, ELI retains APL's succinct and expressive way of array programming compared with [[MATLAB]] or [[Python_Python (programming_languageprogramming language)|Python]], ELI encourages a [[Dataflow_programming|dataflow style of programming]] style, where the output of one operation feeds the input of another.
 
ELI is available without charge on [[Windows]], [[Linux]], and Mac OS[[macOS]].
 
==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 functionalitiesfunctions to write and load ELI code. Three additionaladded widgets are used to monitor functions, variables, libraries and command history.
 
==New features==
[https://fastarray.appspot.com/releasenote/Eli-v0.3.html '''New features:''']
Version 0.3 adds several new features.<ref>{{cite web |url=https://fastarray.appspot.com/releasenote/Eli-v0.3.html |title=Overview |last=Chen |first=Hanfeng |date=2015 |website=ELI, a System for Programming with Arrays |publisher=Fastarray.appspot.com |access-date=2018 February 26}}</ref>
* Like: string match
* Match
Line 39 ⟶ 42:
* []: standard input
* Date and time attributes
* File Handlehandle: []open, []close, []write and []get
* Semi ColonSemicolon (;)
 
Documentation:
* [https://fastarray.appspot.com/docs/index.html Online documentation]
* [https://www.youtube.com/channel/UCpq4XRc7A1YNbEnBRx9-jzw YouTube channel]
 
Line 73 ⟶ 76:
10 9 8 7 6 5 4 3 2 1
</source>
A 2-by-3 matrix (or higher dimension array, e.g., <code>2 3 4#!24</code>) can be generated by <code>#</code> with left argument <code>2 3</code>.
<source lang="text">
2 3#!6 // 2 dimension array (matrix)
Line 92 ⟶ 95:
Two file extensions are used in ELI for exchanging and sharing code for different purposes: <code>.esf</code> and <code>.eli</code>.
 
An ELI file with extension <code>.esf</code> is a script file which contains all methods and data. A simple way to create a script file is using the command <code>)out</code>. However, a clean workspace withoutwith anyno debugging or error information left is requiredneeded before a script file can be created. Later the command <code>)fload</code> can be used to reload the script file.
 
<source lang="text">
Line 102 ⟶ 105:
</source>
 
An ELI file with extension <code>.eli</code> is an ELI workspace file which contains everything in a workspace. <code>save</code> and <code>load</code> are commands designed for workspace files.
 
<source lang="text">
Line 111 ⟶ 114:
 
==Development notes==
 
* (Dec. 2016) ELI began to actively maintain its online language reference manual which can be found at [https://fastarray.appspot.com/docs/EliReference.html fastarray/docs]
* (Dec. 2016) An ELI primer was released
 
==See also==
* [[APL (programming language)|APL]], the first array programming language
* [[J (programming language)|J]], another APL-inspired language
* [[Q (programming language from Kx Systems)|Q]], programming language from Kx Systems
 
==References==
{{Reflist}}
 
{{APL programming language}}
 
[[Category:APL programming language family]]