REBOL

REBOL
REBOL
Семантика:

модульный, файл-ориентированный, блочно-структурный, порт-протокол, конвертация данных, парсинг

Класс языка:

мульти-концептуальный, императивный, диалектный, динамический, обмен сообщениями, контекстно-зависимый, объектный, функциональный, распределенный, сетевой, ML, DSL

Тип исполнения:

интерпретатор, виртуальная машина

Появился в:

1997

Автор(ы):

Карл Сассенрат

Релиз:

февраль 2010

Тестовая версия:

REBOL 3

Типизация данных:

сильная, динамическая, раннее и позднее связывание

Основные реализации:

кросс-платформенный, внешнее ядро, диалекты, плагины, сервер, смарт-клиент, P2P, сервисы, библиотека образцовых скриптов, библиотека всех скриптов

Диалекты:

Draw, VID, GUI, Make-GOB, Richtext, Effectt, Secure, DevBase, Rebcode, Parse, MediaWiki Dialect

Испытал влияние:

Fortran, Lisp, Лого, Си, Forth, Prolog, REXX, Smalltalk, Self, Tcl, Lua, Limbo

REBOL (произносится как ['reb`yell]) — контекстно-зависимый объектный язык программирования, созданный специально для распределенных вычислений в Web. Аббревиатура REBOL: Relative Expression Based Object Language.

Автор позиционирует REBOL как язык обмена сообщениями:

  • Сила REBOL состоит в уникальном объединении концепции языка программирования и языка метаданных.
  • Основная отличительная черта REBOL — предоставление архитектуры, позволяющей хранить, обмениваться, и преобразовывать информацию между любыми устройствами, соединенными через Internet
  • REBOL обеспечивает создание легковесных предметно-ориентированных под-языков (диалектов) и микроформатов. Это больше, чем язык и скорее маленькая быстрая платформа для Интернет приложений.

Содержание

История

Карл Сассенрат (en), архитектор («слов и концептов языка») до организации компании REBOL Technologies[1] был основным разработчиком AmigaOS. Ещё раньше он работал в Apple Computer и Hewlett Packard, где получил опыт разработки операционных систем, файловой системы и сформулировал собственную концепцию микроядра для компьютерной операционной среды.

Начал работать с 13 лет в телевизионной компании, где в 14 был техническим директором ежедневной новостной программы. Закончил Калифорнийский университет в Дэвисе, специализируясь в операционных системах, параллельных процессах, языках программирования и нейрофизиологии.

Его проект сразу стал вызовом, в первую очередь, поставив точку в развитии языков разметки. Но фирма продолжает удивлять своими решениями, взяв курс на выбор сбалансированных концепций программирования и тщательную реализацию. Первый продукт компании — это уже вторая версия языка (1998 год). Сразу же стали возникать модификации ядра с диалектами:

  • REBOL/Core
  • REBOL/View был выпущен в апреле 2001, диалект VID
  • REBOL/Command, добавлены шифрование и доступ БД, был выпущен в сентябре 2000 — для сервера.

Для продвинутых пользователей (разработчиков):

  • REBOL/SDK, предоставлен выбор ядра для сборки, препроцессор, и др. (выпущен в декабре 2002).

Как пример коммерческого продукта:

  • REBOL/IOS, расширяемая среда сотрудничества, основанная на REBOL-технологии. Представляет собой модель виртуального компьютера нового поколения, включенного в Интернет под управлением IOS/Eхpress. (Интернет Операционная Система, 2001 год).

В настоящее время создана и тестируется третья версия.

12 декабря 2012 г. Карл Сассенрат объявил[2] об открытии исходных текстов REBOL 3 под лицензией Apache.

Язык

Программирование

REBOL — это высокоуровневый мета-язык. Основные концепции языка: скрипты (тексты), выражения, серии, блоки, файлы, функции, объекты, модули, порты, протоколы, синтаксический анализ, математика, ошибки, графика нижнего уровня, графические диалекты. Язык прост в понимании, ему можно учить школьников и немедленно начинать программировать. Но, одновременно, он достаточно мощный благодаря своей универсальности, и отдельные приемы и методологии могут быть предметом глубокого университетского курса.

REBOL разрешает структурное, модульное, функциональное и основанное на прототипах программирование. REBOL — не чистый функциональный язык, однако программирование в командном стиле (императив — это не совсем функция) — поддерживается. Минимальной лексической единицей является слово — просто набор символов. Средствами языка, любому слову может быть приписан весьма разнообразный смысл, который может далеко выходить за рамки понятий базовой среды программирования, в которой используется в основном набор базовых функций (460). Их разрешается связывать тем или иным способом в рамках объектно-ориентированной парадигмы, что позволяет осуществлять, имея различные фиксированные типы данных, поддержку других возможных парадигм программирования, не выходя из контекста, (то есть внутри базового словаря). REBOL особенно хорош для программирования, ориентированного на языки предметной области, что называется ДИАЛЕКТАМИ.

REBOL является динамическим, и динамически типизированным (значения со строгим контролем типов, переменные — нет). Он использует сборку «мусора» при управлении памятью, поддерживает обработку исключений и динамическое разрешение имен (через вычисленное связывание).

И при всем при этом, язык сохраняет статус микросистемы, постоянно наращивая свою функциональную мощь. Так например, его конкурент по поставленным задачам (быть посредником X-Internet или как сейчас модно говорить Web 3.0) curl требует в сотни раз больше памяти (!) и, фактически, проиграл в концепции за эффективность, несмотря на участие в нем таких монстров, как бывший глава IBM Instruments Роберт Янг и отец-основатель интернета Тим Бернерс-Ли[3].

Определение данных и обмен

Чтобы поддерживать использование языка, как языка обмена данных, REBOL имеет минимальный синтаксис со следующими свойствами:

  • Нет никаких инструкций; выражения — первичный семантический модуль.
  • Нет никаких ключевых слов.
  • Из знаков препинания только пробельные, и [ ] ( ) " { } как разделители.

Как язык данных, REBOL поддерживает строго типизированные значения — около 60 родных типов данных. Как во многих языках программирования, есть основные типы — подобно целым числам, десятичным числам и строкам. REBOL расширяет диапазон типов данных, идентифицируя их лексической формой так, чтобы включать сами значения типа :

  • адресов электронной почты (name@host.dom), URL (http://www.rebol.com),
  • теги разметки (<b>, <размер шрифта = «2» цвет = «синий»>),
  • денежные единицы (100.00 $, USD$25.25),
  • даты (30-Nov-2005, 1-Dec-2005/10:30-7:00),
  • время (12:00:00),
  • пары координат (5x5),
  • кортежи (255.255.255, 192.168.100.1),
  • фразы (как дела ?).

Эти типы данных используют лексические формы знакомые многим, а не только программистам, чтобы облегчить их использование в качестве языка обмена данными (сообщениями). Основная структура данных в REBOL, используемая для группировки некоторой совокупности значений — это block!, (помещается в квадратных скобках [ ]), который достаточно легко ассоциируется со списками в Лиспе или тегами в языках разметки.

Реализация

Интерпретатор доступен в нескольких вариантах (/Core, /View, /Command), а также (/Base, /Face и /Pro) — для SDK.

Исходный код REBOL-интерпретатора распространяется свободно и не требует инсталляции. Свободно доступен также REBOL/View. Расширенные версии, такие как REBOL/Pro требуют оплаты лицензии, они добавляют такие возможности как доступ к БД, способность использовать динамически загружаемые библиотеки и возможность создания автономных (выполняемых) программ, для разработчиков (н.п. .exe for Win). В третьей версии планируется открыть весь интерфейс.

Среда выполнения в настоящее время хранится в единственном исполняемом файле. REBOL/Core, консольная версия, занимает приблизительно 300 КБ. REBOL/View, версия с поддержкой GUI (графического пользовательского интерфейса), имеет размер приблизительно 600 КБ. Прикладные программы, иногда называемые сценариями, что для данного языка не совсем правильно — редко больше, чем несколько килобайтов. Так что Вы можете поместить интерпретатор и исполняемый файл (код) даже на один гибкий диск (даже неговоря об USB-512-й флешке) и послать его по электронной почте, или выполнить непосредственно из Internet.

Среда выполнения включает в себя поддержку многих протоколов Internet, облегчая создание Internet-приложений типа агентов электронной почты или Web-приложений, и вообщее клиент-серверных приложений любого масштаба.

REBOL/View обеспечивает независимый от платформы доступ к графическим и звуковым возможностям, включает платформонезависимый инструментарий для работы с окнами, с произвольным, расширяемым набором GUI-стилей. Таким образом, Вы можете создавать распределенные приложения, обладающие графическим интерфейсом пользователя на разных платформах. Использование идеи диалектов Ребола — это эффективное решение для разработки будущих X-Internet приложений.

REBOL сообщество также связано через общий «рабочий стол REBOL» — графическое представление REBOL-файлов, хранимых в Internet, которое получило название «REB-Site». «Рабочий стол REBOL» устанавливается сразу, вместе с REBOL/View интерпретатором, и не трубует любого другого браузера для работы. Сам же «рабочий стол REBOL» — это приложение REBOL с открытыми исходными кодами.

Примеры

Hello World:

В консоли Вы просто пишите:

 print "Hello World!"

Создадим графический интерфейс, независимый от платформы:

REBOL [
   Title: "Hello World in a Window"
   File: %hello-view.r
   Date: 12-January-2002
]

view layout [
    text "Hello world!" 
    button "Quit" [quit]
]

А здесь элементарная интернет программа, которая использует HTTP и SMTP:

REBOL [
   Title: "Web Page Emailer"
   File:  %sendwebpage.r
   Date:  12-January-2002
   Purpose: "Get an HTML document from the web and send it through e-mail"
]

send branko@collin.example read http://www.rebol.com

Каждая программа на REBOL должна содержать секцию заголовка, которая начинается со слова REBOL, чтобы интерпретатор знал, где начинается код. Заголовок должен обязательно содержать только REBOL []; однако хорошей практикой является подробный заголовок, как в примере выше.

Диалекты

REBOL — контекстно-зависимый язык, который обеспечивает поддержку проблемно-ориентированных подъязыков, названных диалектами. Пример чувствительности контекста REBOL можно проиллюстрировать на слове return. При «нормальном» выполнении, return внутри функции возвращает значение результата её выполнения. В контексте диалекта Visual Interface Dialect (VID) наличие слова return обозначает перевод строки. REBOL-программист может создавать собственные диалекты, многократно используя любое существующее REBOL-слово, связывая с ним различные значения, которые актуальны в контексте этого диалекта, для этой цели в языке имеются мощные (но простые в использовании) средства, помогающие в проектировании диалектов.

Свободные реализации REBOL-подобных языков

ORCA

ORCA — это встраиваемый интерпретатор REBOL-подобного языка, реализованный в виде библиотеки на языке C, и распространяемый на условиях LGPL.[4]

Red

В феврале 2011 года на конференции REBOL & Boron в Нидерландах[5] французский программист Ненад Ракоцевич (Nenad Rakocevic) представил публике язык Red, основанный на REBOL[6][7]. Это достаточно простой и низкоуровневый, расширяемый язык системного программирования, позволяющий определять различные DSL, предназначенные для применения в широкой области задач. Реализация языка представляет собой компилятор в машинный код и распространяется на условиях лицензии BSD.[8] В настоящее время он работает под управлением ОС Windows, Linux и Syllable. На конец июня 2011 года проект Red Programming Language продолжает активно развиваться.

Примечания

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "REBOL" в других словарях:

  • Rebol — est un langage de programmation script de haut niveau conçu et imaginé par Carl Sassenrath basé sur la sémantique dénotationnelle et se proclamant « Messaging Language ». On peut éventuellement le rattacher au langage Logo (surtout… …   Wikipédia en Français

  • REBOL — est un langage de programmation script de haut niveau conçu et imaginé par Carl Sassenrath basé sur la sémantique dénotationnelle et se proclamant « Messaging Language ». On peut éventuellement le rattacher au langage Logo (surtout… …   Wikipédia en Français

  • Rebol —   [Relative Expression Based Object Language, dt. »auf relativen Ausdrücken (Bezugsausdrücken) basierte Objektsprache«], eine 1998 vorgestellte Scriptsprache, die v. a. für Internetanwendungen konzipiert ist. Rebol soll leichtes Programmieren… …   Universal-Lexikon

  • rebol — rebol. (Por redol, de redolar). m. Sal. ruedo (ǁ refuerzo de los vestidos talares) …   Enciclopedia Universal

  • rebol — (Por redol, de redolar). m. Sal. ruedo (ǁ refuerzo de los vestidos talares) …   Diccionario de la lengua española

  • REBOL — Infobox programming language name = REBOL paradigm = multi paradigm year = 1997 designer = Carl Sassenrath developer = REBOL Technologies latest release version = Core 2.7.6, View 2.7.6 latest release date = March, 2008 typing = dynamic, strong… …   Wikipedia

  • REBOL — Logo REBOL /ˈrebl/ (Relative Expression Based Object Language) ist eine plattformübergreifende Skriptsprache, die von Carl Sassenrath entwickelt wurde. Wichtigstes Merkmal der Sprache ist das sogenannte Dialecting (siehe auch Domänenspezifische… …   Deutsch Wikipedia

  • Rebol — ● np. m. ►LANG Relative Expression Based Object Language. langage mis au point par Carl Sassenrath, publié pour la première fois en 1997, il est disponible sur une quarantaine de plateformes. Il utilise des échanges de messages pour permettre un… …   Dictionnaire d'informatique francophone

  • Rebol — …   Википедия

  • REBOL — Relative Expression Based Object Language LISP ähnliche interpretierte Programmiersprache von Carl Sassenrath, entwickelt 1998 …   Acronyms


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»