RSL
Класс языка: | |
---|---|
Тип исполнения: | |
Появился в: |
1994 г. |
Автор(ы): |
Сергей Кубрин |
Последняя версия: |
1121 |
Типизация данных: |
динамическая |
Основные реализации: |
RS-Bank, RS-Portal, RS-Balance, RS-Forms |
Диалекты: |
[отсутствуют] |
RSL — Проблемно-ориентированный проприетарный интерпретируемый язык программирования, разработанный компанией R-Style Softlab для использования в своих программных продуктах. В настоящее время в язык включена поддержка ООП и он упоминается также как Object RSL. Среда разработки включает в себя редактор, отладчик, прекомпилятор, редактор консольных диалоговых окон и структур БД Pervasive, редактор графических отчетов Visual RSL, SDK для создания подкючаемых модулей на C DLM SDK. RSL также называют макроязыком, а программы на нём макросами. Инструменты для создания и отладки программ на RSL доступны для свободного скачивания на сайте разработчика, однако такие макросы не должны содержать вызовов модулей, содержащих бизнес-логику и встроенных в основные программы R-Style. Интерпретатор реалиазован под Windows, позволяет работать под Wine. Ранние версии поддерживали MS DOS.
Поддержка RSL встроена в RS-Bank и его модули, RS-Balance, RS-Portal.
С самого начала язык имеет встроенную поддержку работы с таблицами менеджера записей Btrieve (переименован в Pervasive PSQL). DBF файлы поддерживаются без учёта индексов. Работа с другими, в том числе SQL базами была организованна позднее через модуль RSLX и ADO или модуль RSD.
Hello world программа на RSL:
[Hello, world];[1]
Квайн на RSL (форматирование для удобства чтения):
s="s=Print(SubStr(s,1,2)+StrFor(34)+s+StrFor(34)+StrFor(59)+SubStr(s,3));"; Print(SubStr(s,1,2)+StrFor(34)+s+StrFor(34)+StrFor(59)+SubStr(s,3));
История
- 1994
- 10.02.1997 Возможность подключения модулей на C, C++ (DLM-модулей).
- 25.06.1997 Поддержка объектов создаваемых в среде выполнения RSL программ.
- 10.07.1997 Первый Object RSL.
- 16.03.1998 Стандартный класс TArray.
- 21.04.1998 DLM-модуль RSLX для поддержки Microsoft ActiveX объектов.
- 07.05.1998 Стандартный класс TBFile.
- 21.05.1998 Обработка ошибок при помощи конструкции OnError и класса TrslError.
- 25.04.2001 Процедуры для взаимодействия с отладчиком.
- 29.11.2001 Интеграция в RSL расширения для работы с терминалом и новые универсальные функции для работы с файлами как на стороне сервера, так и на стороне терминала.
- 23.05.2002 Базовая поддержка RSCOM в стандартном модуле RCW.
- 16.04.2003 Поддержка модулей платформы .NET.
- 27.05.2005 Наконец-то появился цикл for.
Модули языка
RSLSRV
Модуль RSLSRV регистрирует в системе объект RSLSrv.RslEngine, который позволяет использовать макрос на RSL как объект ActiveX. Глобальные переменные макроса становятся свойствами, а процедуры — методами. Например, пусть существует макрос myactivex.mac:
var str1:String="Test string"; macro func1(a) return a*a; end;
тогда можно использовать следующий код на Visual Basic:
Sub TestRSL()
Set eng = CreateObject("RSLSrv.RslEngine")
Set MyObj = eng.LoadModule("myactivex.mac")
Debug.Print MyObj.str1 ' печатает Test string
Debug.Print MyObj.func1(2) ' печатает 4
End Sub
RSD
Этот раздел статьи ещё не написан. Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел.
Вы можете помочь проекту, написав этот раздел. |
RSLX
Этот раздел статьи ещё не написан. Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел.
Вы можете помочь проекту, написав этот раздел. |
RsEngine
Этот раздел статьи ещё не написан. Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел.
Вы можете помочь проекту, написав этот раздел. |
Windows Reports
Windows Reports — Оъектно-ориентированная библиотека для вывода отчётов в форматы офисных приложений MS Excel, MS Word, Internet Explorer. Библиотека основана на технологиях RSCom и ActiveX. Большая часть написана на RSL, также в состав входят dlm-модули.
Особенности языка
В целом, синтаксис языка прост и понятен программистам, знакомым с языками Pascal и Visual Basic. В языке отсутствует оператор goto. Объявлять переменные и указывать их тип не обязательно. Операторы сравнения имеют более высокий приоритет, чем логические операторы. Например, если надо выполнить действие если переменная a равна 1 или 2, то необходимо применить следующую конструкцию:
if ((a==1) or (a==2)) //действие end;
Выполнение программы начинается с первой инструкции, не входящей в класс или процедуру, как в php.
macro func1 [I'm function 1]; end; //выполнение начнётся здесь [Hello, world];
Отсутствует конструкция, позволяющая инициализировать массив, однако можно воспользоваться функцией. Пример:
macro GetArray() var aRet=TArray(Parmcount()); var i:integer; for (i,0,Parmcount()-1) GetParm(i,aRet[i]); end; return aRet; end; /* macro GetArray */ var MyArray=GetArray(1,"Элемент 2",GetArray(1,2,3),$4,null);
В результате переменная MyArray будет содержать массив из пяти элементов, причём третьим элементом будет массив.
См. также
Примечания
Ссылки
- R-Style Softlab: форум по RSL, исходники на RSL
- Домашняя страница одного из ведущих разработчиков Сергея Кубрина
- Byte Россия. Создание контейнеров элементов управления ActiveX
- Мир ПК. Visual RSL — объектно-ориентированный генератор отчетов
Ошибка: неверное или отсутствующее изображение |
Для улучшения этой статьи желательно?:
|
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....
- Страницы, использующие устаревший тег source
- Страницы с ошибками в подсветке синтаксиса
- Страницы с неработающими файловыми ссылками
- Появились в 1994 году
- Языки программирования по алфавиту
- Википедия:Статьи с незавершёнными разделами
- Википедия:Стилистически некорректные статьи
- Википедия:Статьи без интервик
- Статьи, требующие проверки на грамматические и орфографические ошибки
- Скриптовые языки