REBOL
1997年にリリースされたREBOLは、カール・サセンラスが20年に渡って設計したものである。サセンラスは AmigaOS の主要アーキテクトであり、REBOLの設計にあたっては、表示的意味論の知識に基づいて、LISP、Forth、LOGO、Self といったプログラミング言語の概念を利用した。
REBOO/Command は2000年9月にリリースされ、暗号化機能、ODBCアクセスなどが追加されている。REBOL/View は2001年4月にリリースされ、グラフィックス機能が追加されている。2001年8月にリリースされた REBOL/IOS は、拡張可能な共同作業環境である。2002年12月には、ソフトウェア開発キットがリリースされた。
2012年9月、R3(REBOL 3)オープンソースとして公開されることが発表される。2012年12月には、安定版がリリースされた。ライセンスはApache License 2.0。
function spec ダイアレクト - 関数ヘッダ記述に使われるダイアレクト(ネイティブ)
parse ダイアレクト - バッカス・ナウア記法風の文法規則を記述するためのツール(ネイティブ)
VID - GUI用ダイアレクトで、layout関数として実装されている(mezzanine)。
ユーザーは任意のREBOL関数を使ってダイアレクトを生成できるが、reduce 関数と compose 関数がよく使われており、parse 関数はダイアレクト生成に最適化されている。
parse関数の目的は、BNF風の形式のParsing Expression Grammarの構文規則を指定することでダイアレクトの解釈を与えることであり、yaccやBisonのような構文解析ツールに似ている。REBOLは実行時にそういった規則を解釈する。構文解析中に実行すべきことも指定できる。
parse関数は、REBOLブロックまたはREBOL文字列を処理するのに使われる。
parseによる文字列処理は非常に柔軟性があるが、低レベルな手法であるため、手間がかかる。ブロック解析のほうが簡単だが、制限がある。ブロック解析では、ROBOLは書かれている規則をREBOLの値の並びとして字句解析する(文字列解析では文字と区切り文字として解釈する)。そのため、より抽象化された規則として記述できるが、通常のREBOLの字句形式にマッチしていなければならない。