- RSL
-
RSL Класс языка: Тип исполнения: Появился в: 1994
Автор(ы): Сергей Кубрин
Расширение файлов: mac
Релиз: 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 — объектно-ориентированный генератор отчетов
Для улучшения этой статьи желательно?: - Исправить статью согласно стилистическим правилам Википедии.
- Проставить интервики в рамках проекта Интервики.
- Проверить статью на грамматические и орфографические ошибки.
Категории:- Появились в 1994 году
- Языки программирования по алфавиту
- Скриптовые языки
Wikimedia Foundation. 2010.