ELI (язык программирования)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | множество |
---|---|
Разработано | Вай-Ми Чинг |
Разработчик | Ханфэн Чен [2] (Рапидсофт) |
Впервые появился | 2011 год |
Стабильная версия | 0,3
/ 10 августа 2015 г |
Дисциплина набора текста | динамичный |
Язык реализации | С++ , Qt |
Платформа | ИА-32 , x86-64 |
ТЫ | Кроссплатформенность : Windows , Linux , macOS. |
Лицензия | Бесплатное ПО |
Расширения имен файлов | .esf .eli |
Веб-сайт | Фастаррей |
Под влиянием | |
АПЛ , Вопрос |
ИЛИ [3] — это система языка программирования интерактивных массивов, основанная на языке программирования APL . Он имеет большинство функций Международной организации по стандартизации (ISO) стандарта APL ISO/IEC 13751:2001 , а также список неоднородных или непрямоугольных данных, комплексных чисел, символов, временных данных и структур управления. Доступна возможность использования файлов сценариев для организации программ аналогично использованию #include
на C , что также обеспечивает удобный ввод/вывод данных . В ELI есть словари, таблицы и базовый набор SQL -подобных операторов. Для повышения производительности компилятор ограничен программами с плоскими массивами.
Заменяя каждый символ APL одним или двумя символами ASCII , ELI сохраняет лаконичный и выразительный способ программирования массивов APL по сравнению с MATLAB или Python . ELI поощряет стиль программирования потоков данных , при котором выходные данные одной операции передаются на вход другой.
ELI доступен бесплатно как бесплатное программное обеспечение для Windows , Linux и macOS .
Версия 0.3
[ редактировать ]Версия ELI 0.3, описанная как стабильная версия, была выпущена 10 августа 2015 года. Она интегрируется с кроссплатформенной интегрированной средой разработки ELI Studio, которая предоставляет редактор кода со специализированными функциями для написания и загрузки кода ELI. Три добавленных виджета используются для мониторинга функций, переменных, библиотек и истории команд.
Версия 0.3 добавляет несколько новых функций. [4]
- Например: совпадение строк
- Соответствовать
- []PP: контроль точности печати
- )время: показатель производительности
- []: стандартный ввод
- Атрибуты даты и времени
- Дескриптор файла: []открыть, []закрыть, []записать и []получить
- Точка с запятой (;)
Пример кода
[ редактировать ]Строка ELI выполняется справа налево как цепочка операций; все, что находится справа от '//', является комментарием.
Восклицательный знак (!) — интервальная функция. Он может генерировать вектор из n целых чисел от 1 до n.
!10
1 2 3 4 5 6 7 8 9 10
Порядок выполнения ELI — справа налево, и все примитивные функции имеют одинаковый приоритет.
5 * 2 + 10 // from right to left, 5 * (2 + 10)
60
В следующем примере функция add
объявляется в короткой функциональной форме. Аргументами функции могут быть скаляр или вектор.
{add: x+y} // 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 $
оператор вращения возвращает обратный порядок вектора.
$!10 // reverse
10 9 8 7 6 5 4 3 2 1
Матрица 2х3 (или массив более высокой размерности, например, 2 3 4#!24
) может быть сгенерировано #
с левым аргументом 2 3
.
2 3#!6 // 2 dimension array (matrix)
1 2 3
4 5 6
В первой строке под x
присваивается вектор от 1 до 20. Тогда 1 = 2|x
возвращает нечетное число True
и четное число False
. /
— это примитивная функция сжатия, которая извлекает значение из x
соответствующий True
значения в его левом аргументе.
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
Расширения файлов
[ редактировать ]В ELI используются два расширения файлов для обмена и совместного использования кода для разных целей: .esf
и .eli
.
ELI-файл с расширением .esf
— это файл сценария, который содержит все методы и данные. Простой способ создать файл сценария — использовать команду )out
. Однако перед созданием файла сценария необходимо чистое рабочее пространство, в котором не осталось информации об отладке или ошибках. Позже команда )fload
можно использовать для перезагрузки файла сценария.
)out MyScript
)lib
MyScript.esf
)fload MyScript
saved 2017.02.17 10:23:55 (gmt-5)
ELI-файл с расширением .eli
— это файл рабочей области ELI, который содержит все, что есть в рабочей области. save
и load
— это команды для файлов рабочей области.
)save MyWorkspace
)load MyWorkspace
saved 2017.02.17 10:57:19 (gmt-5)
Ссылки
[ редактировать ]- ^ ELI: простая система программирования массивов
- ^ ELI - зеркальный сайт в лаборатории Сейбл в Университете Макгилла.
- ^ «ELI: Система программирования с помощью массивов» . Дискус .
- ^ Чен, Ханфэн (2015). «Обзор» . ELI, система программирования с использованием массивов . Fastarray.appspot.com . Проверено 26 февраля 2018 г.