See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Rebol — Википедия

Rebol

Материал из Википедии — свободной энциклопедии

Rebol (произносится как ['reb`yell]) — основанный на относительных выражениях, объектно-ориентированный язык программирования, являющийся также языком обмена данными (процедурами), и созданный специально для распределенных вычислений в сети Интернет.

Создатель языка - Карл Сасенрат называет его языком обмена сообщениями:

«Основная идея Ребола состоит в использовании его для: серверов, клиентов, коммуникации между ними, хранения данных и их (средств) самих.

  • Сила Ребола состоит в уникальном объединении концепции языка программирования и языка метаданных.
  • Основная отличительная черта Ребола - предоставление новой архитектуры, позволяющей хранить, обмениваться, и преобразовывать информацию между любыми устройствами, соединенными через Internet. По сути, Ребол предназначен для семантического обмена информацией между людьми и машинами, если это будет нужно разработчику или потребителю...»


Содержание

[править] История

Ребол впервые появился на свет в 1997 году, он проектировался в течение 20 лет Карлом Сассенратом, архитектором и основным разработчиком AmigaOS, на основе опыта применения денотационной семантики, и использования концепций таких языков, как Lisp, Forth, и Logo. Последняя фраза не является истиной - она появилась из попытки осмысления самого Ребола и никогда автором (Карлом) не произносилась...

Ребол представлен в 3-х основных модификациях:

  • REBOL/Core,самый легкий вариант (может сильно заменить и даже вытеснить PHP) - для серевера.
  • REBOL/View был выпущен в апреле 2001, добавлены графические возможности поверх базового языка.
  • REBOL/Command, добавлены шифрование и доступ БД, был выпущен в сентябре 2000 - для сервера.

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

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

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

  • REBOL/IOS, расширяемая среда сотрудничества, основанная на REBOL-технологии.

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

[править] Язык

[править] Программирование

REBOL — это высокоуровневый, мультиплатформенный, мульти-парадигменный, динамический (рефлексивный), символический язык программирования. Включает также понятное человеку образное представление кода и данных, что очень подходит для мета-программирования и быстрого прототипирования.

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

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

[править] Определение данных и обмен

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

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

Как язык данных, REBOL поддерживает строго типизированные значения - больше чем 30 родных типов данных. Как во многих языках программирования, есть основные типы - подобно целым числам, десятичным числам и строкам. 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. Во время написания этой статьи /Core версия, которая является подмножеством всех других версий, была доступна для 43 платформ.

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

Среда выполнения в настоящее время хранится в единственном исполняемом файле. REBOL/Core, консольная версия, занимает приблизительно 300 КБ. REBOL/View, версия с поддержкой GUI (графического пользовательского интерфейса), имеет размер приблизительно 650 КБ. Прикладные программы, иногда называемые сценариями, что для данного языка не совсем правильно,— редко больше, чем несколько килобайтов. Так что Вы можете поместить интерпретатор и исполняемый файл (код) даже на один гибкий диск (даже неговоря об 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-слово, связывая с ним различные значения, которые актуальны в контексте этого диалекта, для этой цели в языке имются мощные (но простые в использовнии) средства, помогающие в проектировании диалектов.

[править] Ссылки

На других языках


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -