Static Wikipedia February 2008 (no images)

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

Web Analytics
Cookie Policy Terms and Conditions Rebol — Википедия

Rebol

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

Эту статью или раздел следует викифицировать.
Пожалуйста, оформите её согласно общим правилам и указаниям.

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

Его создатель Карл Сасенрат называет его языком сообщений, и говорит об этом следующее:

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


Содержание

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

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

REBOL/Command, добавлены, сильное шифрование и доступ ODBC, был выпущен в сентябре 2000.

REBOL/View был выпущен в апреле 2001, добавлены графические возможности поверх базового языка.

REBOL/IOS, расширяемая среда сотрудничества, основанная на REBOL была выпущена в августе 2001.

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

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

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

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

Исходный текст REBOL интерпретатора является частным. И REBOL/Core и REBOL/View были сделаны доступными для того, чтобы производить распространяемые коммерческие приложения бесплатно. Расширенные версии, такие как REBOL/Pro, все еще требуют оплаты лицензии; они добавляют такие возможности как ODBC доступ к данным, способность использовать динамически загружаемые библиотеки и возможность создания автономных EXE программ.

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

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

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

REBOL сообщество связано через общий »рабочий стол REBOL" — графическое представление связанных с REBOL файлов, хранимых в Internet. «Рабочий стол REBOL» устанавливается вместе с REBOL интерпретатором. Сам «рабочий стол 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 слово и задавая различные значения в контексте этого диалекта.

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

 
На других языках
Static Wikipedia 2008 (no images)

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 -

Static Wikipedia 2007 (no images)

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 -

Static Wikipedia 2006 (no images)

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 - 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