ELI (język programowania)
Paradygmat | szyk |
---|---|
Zaprojektowany przez | Wai Mee Ching |
Deweloper | Hanfeng Chen (Rapidsoft) |
Po raz pierwszy pojawiły się | 2011 |
Wersja stabilna | 0.3 / 10 sierpnia 2015
|
Dyscyplina pisania | dynamiczny |
Język implementacji | C++ , Qt |
Platforma | IA-32 , x86-64 |
system operacyjny | Wieloplatformowość : Windows , Linux , macOS |
Licencja | Darmowe |
Rozszerzenia nazw plików | .esf .eli |
Strona internetowa | |
Pod wpływem | |
APL , Q |
ELI to interaktywny system języka programowania tablic oparty na języku programowania APL . Posiada większość funkcji standardu Międzynarodowej Organizacji Normalizacyjnej (ISO) ISO/IEC 13751:2001 , a także listę danych niejednorodnych lub nieprostokątnych, liczb zespolonych, symboli, danych czasowych i struktur kontrolnych. Dostępna jest funkcja plików skryptowych do organizowania programów w sposób podobny do używania #include
w C , który zapewnia również wygodne wprowadzanie/wyprowadzanie danych . ELI ma słowniki, tabele i podstawowy zestaw SQL . Ze względu na wydajność ma kompilator ograniczony do programów z płaską tablicą.
Zastępując każdy znak APL jednym lub dwoma znakami ASCII , ELI zachowuje zwięzły i wyrazisty sposób programowania tablicowego APL w porównaniu z MATLABem lub Pythonem , ELI zachęca do stylu programowania przepływu danych , w którym dane wyjściowe jednej operacji zasilają dane wejściowe innej.
ELI jest dostępny bezpłatnie, jako freeware , w systemach Windows , Linux i macOS .
Wersja 0.3
ELI wersja 0.3, określana jako wydanie stabilne, została wydana 10 sierpnia 2015 r. Integruje się z wieloplatformowym IDE, ELI Studio, które zapewnia edytor kodu ze specjalistycznymi funkcjami do pisania i ładowania kodu ELI. Trzy dodane widżety służą do monitorowania funkcji, zmiennych, bibliotek i historii poleceń.
Wersja 0.3 dodaje kilka nowych funkcji.
- Jak: dopasowanie ciągów
- Mecz
- []PP: kontrola precyzji drukowania
- )czas: miara wydajności
- []: wejście standardowe
- Atrybuty daty i godziny
- Uchwyt pliku: []otwórz, []zamknij, []zapisz i []pobierz
- średnik (;)
Przykładowy kod
Linia ELI jest wykonywana od prawej do lewej jako łańcuch operacji; cokolwiek na prawo od „//” jest komentarzem.
Wykrzyknik (!) jest funkcją interwałową. Może wygenerować wektor n liczb całkowitych od 1 do n.
!10 1 2 3 4 5 6 7 8 9 10
Kolejność wykonywania ELI jest od prawej do lewej, a wszystkie prymitywne funkcje mają równy priorytet.
5 * 2 + 10 // od prawej do lewej, 5 * (2 + 10) 60
W następnym przykładzie funkcja add
jest zadeklarowana w krótkiej formie funkcji. Argumentami funkcji mogą być skalary lub wektory.
{add: x+y} // krótka forma funkcji add 1 add 2 // 1+2 3 1 add !10 // 1+(1..10) 2 3 4 5 6 7 8 9 10 11
Operator rotacji $
zwraca odwrotną kolejność wektora.
$!10 // odwróć 10 9 8 7 6 5 4 3 2 1
Macierz 2 na 3 (lub tablicę o wyższych wymiarach, np. 2 3 4#!24
) można wygenerować za pomocą #
z lewym argumentem 2 3
.
2 3#!6 // 2-wymiarowa tablica (macierz) 1 2 3 4 5 6
W pierwszym wierszu poniżej x
jest przypisany wektorem od 1 do 20. Wtedy 1 = 2|x
zwraca liczbę nieparzystą True
i liczbę parzystą False
. / to prymitywna funkcja kompresji, która pobiera wartość w x
odpowiadającą wartościom
True
w swoim lewym argumencie.
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 // pobierz liczby nieparzyste z x 1 3 5 7 9 11 13 15 17 19
Rozszerzenia plików
W ELI używane są dwa rozszerzenia plików do wymiany i udostępniania kodu do różnych celów: .esf
i .eli
.
Plik ELI z rozszerzeniem .esf
to plik skryptu, który zawiera wszystkie metody i dane. Prostym sposobem na utworzenie pliku skryptu jest użycie polecenia )out
. Jednak przed utworzeniem pliku skryptu potrzebny jest czysty obszar roboczy bez informacji o debugowaniu lub błędach. Później polecenie )fload
może zostać użyte do przeładowania pliku skryptu.
)out MyScript )lib MyScript.esf )fload MyScript zapisano 2017.02.17 10:23:55 (gmt-5)
Plik ELI z rozszerzeniem .eli
to plik obszaru roboczego ELI, który zawiera wszystko w obszarze roboczym. save
i load
to polecenia dla plików obszaru roboczego.
)zapisz MyWorkspace )załaduj MyWorkspace zapisano 2017.02.17 10:57:19 (gmt-5)