AltScript vs Rebol
sergey shishkinAltScript унаследован от Rebol, но напрямую с ним не совместим.
Язык Rebol был представлен в 1999 году Карлом Сассенратом , компьютерным архитектором, известным тем, что привнес в персональные компьютеры многозадачность. (Amiga Computer, около 1985 г.)
Rebol уникален и мощен во многих отношениях. За пару лет он набрал обороты, когда его скачали миллионы, и о нем было опубликовано полдюжины книг. К сожалению, Rebol был с закрытым исходным кодом, и с таким количеством языков с открытым исходным кодом он потерял большую часть своей пользовательской базы.
AltScript и его исходный формат ASON похожи на Rebol, но есть важные отличия:
- Фигурные скобки {} используются для обозначения объектов. Они лексические и могут использоваться напрямую без вычисления (
make
конструктор не нужен). - Фигурные скобки {} не используются для многострочных строк. Для многострочных строк используется формат одинарных + двойных кавычек.
- По умолчанию все загруженные значения постоянны. Сюда входят строки, блоки и объекты. Все они защищены от модификации. Однако их можно копировать и изменять. Кроме того, они могут быть загружены как изменяемые с помощью параметра загрузки.
- Для блоков (массивов) используется индексирование с нуля. Это согласуется со многими другими языками.
- Точки используются для выбора поля. Например, «person.name» относится к полю имени объекта person. Слэши не используются для выбора. Использование точки для выбора распространено во многих других языках.
- Знак «@» обозначает буквальные значения для «нет», «истина», «ложь», типы данных и специальные значения, такие как NAN (не число).
- Короткие строки хранятся непосредственно в ячейках значений, а не в отдельном хранилище. Это оптимизация для экономии места.
- Символы выражаются в виде строк. Вышеупомянутая оптимизация хранения делает это возможным.
- Двоичные (байтовые массивы) используйте # ”…” для шестнадцатеричного и ## ”…” для base-64.
- Двоичный код Base-2 не может быть напрямую выражен в исходном формате.
- Арифметические операторы могут использоваться с последовательными типами данных (строками и блоками) для получения различных полезных результатов. Например, «+» можно использовать для соединения строк и блоков.
- Строка символов ускользает использовать C обозначения. Они используют обратную косую черту, например «\ n» для новой строки и «\ t» для табуляции.
- Последовательности # {и # [зарезервированы для использования в будущем. В настоящее время они не определены.
- Для совместимости с JSON:
- Ключи (определения слов) можно записывать в кавычки («поле» :)
- Одинокий двоеточие (:) автоматически ассоциируется со словом / строкой непосредственно перед ним.
- Запятые в качестве разделителей элементов разрешены, если за ними непосредственно не следует нецифровой символ (во избежание путаницы с десятичными значениями на основе запятых).