Knowledge

Rebol

Source 📝

282: 638:, are micro-languages optimized for a specific purpose. Dialects can be used to define business rules, graphical user interfaces or sequences of screens during the installation of a program. Users can define their own dialects, reusing any existing Rebol word and giving it a specific meaning in that dialect. Dialects are 620: 1504:
is an interpreted, homoiconic language inspired by and similar to Rebol, which is meant for embedding domain specific languages. It is implemented as a C library licensed under the terms of the LGPLv3.
396:, has described Rebol as "a more modern language, but with some very similar ideas to Lisp, in that it's all built upon a representation of data which is then executable as programs" and as one of 1177:
returns 1, since the infix addition takes precedence over the computation of the absolute value. When evaluating infix expressions, the order of evaluation is left to right, no operator takes
485:
in all caps. Sassenrath eventually put the naming question to the community debate on his blog. In subsequent writing, Sassenrath adopted the convention of writing the language name as
1970: 571:, had alpha versions released by REBOL Technologies since January 2008. Since its release as an Apache 2 project in December 2012, it is being developed by the Rebol community. 379:
Although it can be used for programming, writing functions, and performing processes, its greatest strength is the ability to easily create domain-specific languages or dialects
40: 1348:
operators all the family members have. Parse dialect syntax and the similarities between the parse dialect and the PEG are illustrated by this transliteration of a
1103:, variables don't have an associated type, type is associated with values. The result, i.e. the evaluation of a word is returned, when a word is encountered by the 699:
A Rebol interpreter with graphical abilities must understand and interpret many dialects. The table below lists the most important ones in order of significance.
1026:
until the end of the line. Multi-line comments or comments not ignored by the lexical parser can be written using "ordinary" datatypes like multi-line strings.
2287: 2267: 1145:
A specific problem worth noting is that composite values, assigned to variables, are not copied. To make a copy, the value must be passed to the
2297: 2277: 1939: 1917: 1511:
was directly inspired by Rebol, yet the implementation choices of Red were geared specifically to overcoming its perceived limitations.
473:
anguage written in all caps. To align with modern trends in language naming represented, e.g. by the change replacing historical name
2307: 2302: 1070: 1934: 2233: 899:
is directly used to represent data and metadata, populate data structures, send data over Internet, and save them in data storage.
2021: 1794:
You probably thought the source release would never happen? Am I right? Well, it's there now in github at github.com/rebol/rebol.
2292: 2262: 1478:
2.7.8 require a paid license; they add features like ODBC data access, and the option to create standalone executable files.
497:
First released in 1997, Rebol was designed over a 20-year period by Carl Sassenrath, the architect and primary developer of
1807: 2137: 1652: 345: 1918:"A REBOL incursion: It's not a scripting language, not a programming language -- and not a new Amiga, either. Or is it?" 1203:
returns 20, while an evaluation giving precedence to multiplication would yield 14. All operators have prefix versions.
1723: 1699: 1622: 988:
Blocks as well as parens may contain other composite values (a block may contain subblocks, parens, strings, ...) or
325: 415:
on December 12, 2012. Older versions are only available in binary form, and no source release for them is planned.
1438: 364: 201: 1349: 2252: 2089: 2039: 1112: 1019: 911: 877: 689: 141: 2272: 1526: 1108: 1005: 895:; other dialects are usually derived from it. In addition to being the common platform for all dialects, the 52: 1896: 2282: 2212: 1264:
function is preferably used to specify, validate, transform and interpret dialects. It does so by matching
510: 348: 247: 559:, providing a choice of kernels to bind against, as well as a preprocessor, was released in December 2002. 2257: 2014: 1035: 978: 891:
Syntactic properties of different dialects may differ. The common platform for all Rebol dialects is the
793: 769: 675: 585:
One of the Rebol design principles is "to do simple things in simple ways". In the following example the
518: 514: 506: 255: 251: 243: 119: 64: 1508: 1492: 1337: 1100: 538: 531:, the interpreter, which became the core of extended interpreter editions, was first released in 1999. 271: 619: 1333: 1122:
Subblocks of the root block evaluate to themselves. This property is used to handle data blocks, for
943: 789: 408: 371:
for code and data, which is also the most notable property of the language according to its designer
1925: 1521: 1453: 1078: 959: 919: 903: 821: 631: 368: 1466:
graphics and sound access, and comes with its own windowing toolkit and extensible set of styles (
285: 915: 568: 2052: 2007: 1165: 1123: 1116: 1096: 1055: 773: 502: 341: 68: 60: 56: 2127: 1744: 1322: 356: 17: 1975: 639: 422: 404: 47: 8: 2067: 1944: 1498:
Rebol inspired the open-source Orca project, which is an interpreted Rebol-like language.
1207:
usually evaluates arguments before passing them to a function. So, the below expression:
1178: 993: 970: 927: 590: 2077: 1168:
exists too. Infix evaluation takes precedence over the prefix evaluation. For example,
1142:, etc., and for dialecting, when a block is passed to a specific interpreter function. 1001: 989: 963: 881: 553:, an extensible collaboration environment built with REBOL was released in August 2001. 212: 87: 1719: 1695: 1639: 1618: 1488: 997: 389: 2196: 1093: 753: 438: 302: 195: 183: 1298:, infix parsing operators don't have prefix equivalents and use precedence rules ( 2047: 1965: 1656: 1295: 1240: 1223: 1157: 693: 671: 372: 352: 80: 75: 1811: 1781: 1251:
Users accustomed to more conventional precedence rules may easily make a mistake
2171: 2072: 1463: 1406: 1309:
Actions can be included to be taken during the parsing process as well and the
1171: 1161: 1054:
function. It is used by default to interpret the text input to the interpreter
981:. The fact that code is written in the form of Rebol blocks makes the language 955: 947: 412: 338: 205: 188: 172: 1644: 407:
and closed source, developed by REBOL Technologies. Following discussion with
2246: 2201: 2191: 2084: 2030: 1960: 1649: 996:), get-words (words prefixed by the colon), lit-words (words prefixed by the 982: 642:
by functions processing Rebol blocks (or parsing strings) in a specific way.
281: 176: 547:
was released in April 2001, adding graphical abilities on the core language.
1880: 1222:
function. Parentheses can be used to change the order of evaluation. Using
1127: 974: 888:
is often used to better convey the structure of the text to human readers.
885: 2186: 2181: 2144: 2119: 1989: 1834: 1758: 1579: 430: 426: 167: 1999: 2217: 1467: 1332:
The parse dialect belongs to the family of grammars represented by the
1218:
first reads the Knowledge Rebol page and then passes the result to the
442: 393: 360: 1501: 1329:
is higher level, handling the scanning at the level of Rebol values.
1023: 931: 696:, moving the "rendering pen" down to the beginning of the next line. 645:
An example of Rebol's dialecting abilities can be seen with the word
1551: 1160:, where a function processes the arguments that follow it. However, 1884: 1236:
No need to rewrite precedence tables when a new operator is defined
434: 419: 1994: 1081:. In contrast to imperative programming languages descending from 2057: 1855: 951: 939: 935: 725:
represents data and metadata; common platform for Rebol dialects
498: 930:
consisting of blocks (the root block is implicit, subblocks are
2206: 2164: 2154: 2149: 1984: 1979: 1900: 1740: 1567: 1444:
The runtime environment is stored in a single executable file.
1233:
No need to "consult" precedence tables when writing expressions
1034:
Blocks containing domain-specific language can be submitted as
1563: 403:
Originally, the language and its official implementation were
317: 2132: 1082: 967: 39: 1294:
uses keywords representing operators and the most important
2222: 2176: 2159: 2109: 2099: 2062: 397: 311: 267: 1313:
function can be used to process blocks or strings. At the
1226:, the usage of parentheses in expressions can be avoided. 1016:, which is a sequence of three words separated by spaces. 2104: 1321:
must handle the "low level" parsing, taking into account
1111:. While not having statements, assignment, together with 411:, the Rebol version 3 interpreter was released under the 1835:"Cross-compiling Rebol for your favorite embedded board" 660:
is just a word not having any specific meaning. In the
226: 1107:
function. The set-word form of a word can be used for
973:, Rebol blocks are composite values similar to quoted 1448:
2.7.8, the console edition, is about 300 KB and
326: 314: 308: 1229:The simple precedence rules are both an advantage: 837:defines graphical elements (lines, polygons, etc.) 305: 1340:(PEG). The main similarity is the presence of the 505:and using concepts from the programming languages 392:, known for his involvement in the development of 1580:"Carl's REBOL Blog - Let's switch to .reb suffix" 2244: 1935:"Rebol Might Be the Language for the Rest of Us" 1077:. The main semantic unit of the language is the 27:Programming language designed by Carl Sassenrath 1282:, is an expression-oriented sublanguage of the 1212: 884:, not requiring specific positioning. However, 607:This is how a similar example looks in R3-GUI: 1008:. Special characters are allowed in words, so 2015: 992:like words, set-words (words suffixed by the 678:passing back a function result value. In the 481:, programmers ceased the practice of writing 1243:from infix to prefix notation and vice versa 2022: 2008: 1779: 1738: 1050:The most frequently used evaluator is the 962:, e-mail addresses, files, paths or other 902:In contrast to programming languages like 2029: 2234:Comparison of data-serialization formats 1969:) is being considered for deletion. See 692:causing the layout engine to simulate a 147:2.101.0 / December 2012 2288:Extensible syntax programming languages 2268:Dynamically typed programming languages 1856:"Source code for the Rebol interpreter" 1782:"Comments on: R3 Source Code Released!" 1456:edition, is about 650 KB in size. 541:access, was released in September 2000. 525:REBOL Technologies was founded in 1998. 14: 2245: 1832: 1780:Sassenrath, Carl (December 12, 2012). 1635: 1633: 1631: 1352:that parses an arithmetic expression: 1089:has neither keywords, nor statements. 2298:Programming languages created in 1997 2278:Prototype-based programming languages 2003: 1932: 1915: 1741:"Inside the REBOL scripting language" 1686: 1684: 1544: 1542: 1126:by submitting blocks as arguments to 958:is used for unprintable characters), 1734: 1732: 1710: 1708: 1682: 1680: 1678: 1676: 1674: 1672: 1670: 1668: 1666: 1664: 1609: 1607: 1605: 1603: 1601: 1599: 1597: 1557: 1550:The REBOL/View and REBOL/Core 2.7.8 537:, which added strong encryption and 1810:. December 14, 2012. Archived from 1628: 453:Rebol was initially an acronym for 24: 1933:Story, Derrick (August 27, 1999). 1909: 1539: 1409:is available in several editions ( 1400: 25: 2319: 1973:to help reach a consensus. › 1952: 1916:Mikes, Nora (November 20, 1999). 1739:Sassenrath, Carl (July 1, 2000). 1729: 1705: 1661: 1613:Goldman, E., Blanton, J. (2000). 1594: 954:suitable for multi-line strings; 593:with a graphical user interface: 2308:Homoiconic programming languages 2303:High-level programming languages 618: 359:. It introduces the concept of 301: 280: 38: 1889: 1873: 1848: 1826: 1800: 1773: 1761:. Rebol.com. September 25, 2012 1439:freely redistributable software 760:Function specification dialect 418:Rebol has been used to program 355:for network communications and 202:Freely redistributable software 125:2.7.8 / January 2011 1751: 1572: 1491:as one of the inspirations of 1470:). Extended editions, such as 800:Visual interface dialect (VID) 680:visual interface dialect (VID) 580: 13: 1: 2293:Formerly proprietary software 2263:Dynamic programming languages 1995:Rebol 3 (Oldes' fork) sources 1958: 1759:"REBOL to become open source" 1532: 1527:Language-oriented programming 1213:http://en.wikipedia.org/Rebol 842:Script specification dialect 780:Object specification dialect 589:is used to describe a simple 53:language oriented programming 1582:. Rebol.com. August 18, 2013 1156:function normally follows a 1029: 567:, the newest version of the 448: 349:dynamic programming language 7: 1617:McGraw-Hill Osborne Media. 1515: 1302:has higher precedence than 1247:as well as a disadvantage: 1181:over another. For example, 1113:functions with side-effects 1101:dynamically typed languages 794:prototype-based programming 625: 149:; 11 years ago 127:; 13 years ago 102:; 27 years ago 10: 2324: 1714:Auverlot, Olivier (2001). 1615:REBOL: The Official Guide. 1493:JavaScript Object Notation 1338:parsing expression grammar 1239:Expressions can be easily 1158:prefix style of evaluation 865:specifies security policy 492: 2231: 2118: 2038: 1481: 1405:The official Rebol 2.7.8 1334:top-down parsing language 1022:may appear following the 871: 632:domain-specific languages 575: 369:domain-specific languages 277: 266: 261: 242: 237: 221: 211: 194: 182: 166: 162: 140: 118: 114: 96: 86: 74: 46: 37: 1971:templates for discussion 1655:October 4, 2012, at the 1522:Domain-specific language 1509:Red programming language 1454:graphical user interface 1354: 1255: 1183: 938:), parens (delimited by 856:Security policy dialect 822:graphical user interface 792:definition/inheritance; 609: 595: 587:Visual interface dialect 501:, based on his study of 1690:Roberts, Ralph (2000). 1808:"Calling REBOL Rebol?" 1124:structured programming 1117:imperative programming 774:functional programming 716:Data exchange dialect 674:referring to a native 503:denotational semantics 387: 342:data exchange language 2253:Programming languages 1284:data exchange dialect 1075:data exchange dialect 1045: 1004:, etc., separated by 924:data exchange dialect 922:or keywords. A valid 908:data exchange dialect 897:data exchange dialect 893:data exchange dialect 653:data exchange dialect 377: 357:distributed computing 2273:Functional languages 1947:on October 12, 1999. 1716:Rebol Programmation. 1548:REBOL Technologies. 1464:platform-independent 910:does not consist of 2283:Scripting languages 1814:on December 3, 2013 1487:Rebol was named by 1274:are written in the 1073:sublanguage of the 1071:expression-oriented 1065:interpreted by the 1000:), numbers, money, 928:tree data structure 591:Hello world program 213:Filename extensions 97:First appeared 34: 2258:AmigaOS 4 software 1928:on March 24, 2005. 1881:rebol-orca project 1860:rebol/rebol GitHub 1833:Sassenrath, Carl. 1745:Dr. Dobb's Journal 1692:REBOL for Dummies. 1640:Crockford, Douglas 1278:, which, like the 1092:Words are used as 851:script definition 413:Apache 2.0 license 206:Apache 2.0 license 92:REBOL Technologies 32: 2240: 2239: 1489:Douglas Crockford 1392:"12+13" 1272:Parse expressions 1266:parse expressions 1012:is a word unlike 926:text stream is a 869: 868: 390:Douglas Crockford 294: 293: 286:Rebol Programming 168:Typing discipline 16:(Redirected from 2315: 2197:Protocol Buffers 2024: 2017: 2010: 2001: 2000: 1990:Rebol 3 Tutorial 1985:A REBOL tutorial 1948: 1943:. Archived from 1929: 1924:. Archived from 1903: 1893: 1887: 1877: 1871: 1870: 1868: 1866: 1852: 1846: 1845: 1843: 1841: 1830: 1824: 1823: 1821: 1819: 1804: 1798: 1797: 1790: 1788: 1777: 1771: 1770: 1768: 1766: 1755: 1749: 1748: 1736: 1727: 1712: 1703: 1688: 1659: 1637: 1626: 1611: 1592: 1591: 1589: 1587: 1576: 1570: 1561: 1555: 1546: 1396: 1393: 1390: 1387: 1384: 1381: 1377: 1374: 1370: 1367: 1364: 1361: 1358: 1325:and delimiters. 1320: 1312: 1263: 1221: 1206: 1199: 1196: 1193: 1190: 1187: 1162:infix evaluation 1155: 1148: 1141: 1137: 1133: 1115:can be used for 1106: 1094:case-insensitive 1069:function, is an 1068: 1053: 1015: 1011: 964:composite values 861: 847: 833: 816: 809: 785: 765: 754:pattern matching 749: 735: 721: 702: 701: 687: 669: 659: 650: 622: 613: 602: 599: 385: 329: 324: 323: 320: 319: 316: 313: 310: 307: 284: 233: 230: 228: 157: 155: 150: 135: 133: 128: 110: 108: 103: 76:Designed by 42: 35: 31: 21: 2323: 2322: 2318: 2317: 2316: 2314: 2313: 2312: 2243: 2242: 2241: 2236: 2227: 2114: 2034: 2028: 1974: 1955: 1912: 1910:Further reading 1907: 1906: 1894: 1890: 1878: 1874: 1864: 1862: 1854: 1853: 1849: 1839: 1837: 1831: 1827: 1817: 1815: 1806: 1805: 1801: 1786: 1784: 1778: 1774: 1764: 1762: 1757: 1756: 1752: 1737: 1730: 1713: 1706: 1689: 1662: 1657:Wayback Machine 1638: 1629: 1612: 1595: 1585: 1583: 1578: 1577: 1573: 1562: 1558: 1547: 1540: 1535: 1518: 1484: 1403: 1401:Implementations 1398: 1397: 1394: 1391: 1388: 1385: 1382: 1379: 1375: 1372: 1368: 1365: 1362: 1359: 1356: 1318: 1310: 1261: 1258: 1224:prefix notation 1219: 1216: 1215: 1204: 1201: 1200: 1197: 1194: 1191: 1188: 1185: 1175: 1153: 1146: 1139: 1135: 1131: 1130:functions like 1104: 1066: 1051: 1048: 1032: 1013: 1009: 936:square brackets 874: 859: 845: 831: 814: 813: 811: 807: 803: 801: 783: 763: 747: 733: 719: 708:Interpreted by 694:carriage return 683: 672:global variable 665: 655: 646: 628: 616: 615: 611: 605: 604: 600: 597: 583: 578: 495: 451: 400:'s influences. 386: 384:Carl Sassenrath 383: 373:Carl Sassenrath 353:Carl Sassenrath 333:; historically 327: 304: 300: 225: 158: 153: 151: 148: 142:Preview release 136: 131: 129: 126: 106: 104: 101: 81:Carl Sassenrath 65:prototype-based 28: 23: 22: 15: 12: 11: 5: 2321: 2311: 2310: 2305: 2300: 2295: 2290: 2285: 2280: 2275: 2270: 2265: 2260: 2255: 2238: 2237: 2232: 2229: 2228: 2226: 2225: 2220: 2215: 2210: 2204: 2199: 2194: 2189: 2184: 2179: 2174: 2169: 2168: 2167: 2157: 2152: 2147: 2142: 2141: 2140: 2130: 2124: 2122: 2116: 2115: 2113: 2112: 2107: 2102: 2097: 2092: 2087: 2082: 2081: 2080: 2075: 2070: 2068:Web Encryption 2060: 2055: 2050: 2044: 2042: 2040:Human readable 2036: 2035: 2027: 2026: 2019: 2012: 2004: 1998: 1997: 1992: 1987: 1982: 1954: 1953:External links 1951: 1950: 1949: 1930: 1911: 1908: 1905: 1904: 1888: 1872: 1847: 1825: 1799: 1772: 1750: 1728: 1704: 1694:Hungry Minds. 1660: 1627: 1593: 1571: 1556: 1537: 1536: 1534: 1531: 1530: 1529: 1524: 1517: 1514: 1513: 1512: 1505: 1499: 1496: 1483: 1480: 1407:implementation 1402: 1399: 1355: 1315:string parsing 1257: 1254: 1253: 1252: 1245: 1244: 1241:transliterated 1237: 1234: 1210: 1209: 1184: 1170: 1099:. Like in all 1047: 1044: 1031: 1028: 956:caret notation 952:curly brackets 946:(delimited by 940:round brackets 873: 870: 867: 866: 863: 857: 853: 852: 849: 843: 839: 838: 835: 829: 825: 824: 818: 805: 797: 796: 787: 781: 777: 776: 767: 761: 757: 756: 751: 745: 744:Parse dialect 741: 740: 737: 731: 727: 726: 723: 717: 713: 712: 709: 706: 627: 624: 610: 596: 582: 579: 577: 574: 573: 572: 562: 561: 560: 554: 548: 542: 526: 494: 491: 450: 447: 445:applications. 437:applications, 409:Lawrence Rosen 381: 346:multi-paradigm 339:cross-platform 292: 291: 290: 289: 275: 274: 264: 263: 259: 258: 240: 239: 235: 234: 223: 219: 218: 215: 209: 208: 204:, 2.101.0 has 198: 192: 191: 189:cross-platform 186: 180: 179: 170: 164: 163: 160: 159: 146: 144: 138: 137: 124: 122: 120:Stable release 116: 115: 112: 111: 98: 94: 93: 90: 84: 83: 78: 72: 71: 50: 44: 43: 26: 9: 6: 4: 3: 2: 2320: 2309: 2306: 2304: 2301: 2299: 2296: 2294: 2291: 2289: 2286: 2284: 2281: 2279: 2276: 2274: 2271: 2269: 2266: 2264: 2261: 2259: 2256: 2254: 2251: 2250: 2248: 2235: 2230: 2224: 2221: 2219: 2216: 2214: 2211: 2208: 2205: 2203: 2200: 2198: 2195: 2193: 2192:Property list 2190: 2188: 2185: 2183: 2180: 2178: 2175: 2173: 2170: 2166: 2163: 2162: 2161: 2158: 2156: 2153: 2151: 2148: 2146: 2143: 2139: 2136: 2135: 2134: 2131: 2129: 2126: 2125: 2123: 2121: 2117: 2111: 2108: 2106: 2103: 2101: 2098: 2096: 2093: 2091: 2088: 2086: 2085:Property list 2083: 2079: 2078:Web Signature 2076: 2074: 2071: 2069: 2066: 2065: 2064: 2061: 2059: 2056: 2054: 2051: 2049: 2046: 2045: 2043: 2041: 2037: 2032: 2031:Data exchange 2025: 2020: 2018: 2013: 2011: 2006: 2005: 2002: 1996: 1993: 1991: 1988: 1986: 1983: 1981: 1977: 1972: 1968: 1967: 1962: 1957: 1956: 1946: 1942: 1941: 1936: 1931: 1927: 1923: 1919: 1914: 1913: 1902: 1898: 1892: 1886: 1882: 1876: 1861: 1857: 1851: 1840:September 16, 1836: 1829: 1813: 1809: 1803: 1796: 1795: 1783: 1776: 1760: 1754: 1746: 1742: 1735: 1733: 1725: 1724:2-212-11017-0 1721: 1717: 1711: 1709: 1701: 1700:0-7645-0745-1 1697: 1693: 1687: 1685: 1683: 1681: 1679: 1677: 1675: 1673: 1671: 1669: 1667: 1665: 1658: 1654: 1651: 1647: 1646: 1645:The JSON Saga 1641: 1636: 1634: 1632: 1624: 1623:0-07-212279-X 1620: 1616: 1610: 1608: 1606: 1604: 1602: 1600: 1598: 1581: 1575: 1569: 1565: 1560: 1554: 1553: 1545: 1543: 1538: 1528: 1525: 1523: 1520: 1519: 1510: 1506: 1503: 1500: 1497: 1494: 1490: 1486: 1485: 1479: 1477: 1473: 1472:Rebol/Command 1469: 1465: 1461: 1457: 1455: 1451: 1447: 1442: 1440: 1437:editions are 1436: 1432: 1428: 1424: 1420: 1416: 1412: 1408: 1353: 1351: 1347: 1343: 1339: 1335: 1330: 1328: 1327:Block parsing 1324: 1316: 1307: 1305: 1301: 1297: 1293: 1292:parse dialect 1289: 1286:. Unlike the 1285: 1281: 1277: 1276:parse dialect 1273: 1269: 1268:at run time. 1267: 1250: 1249: 1248: 1242: 1238: 1235: 1232: 1231: 1230: 1227: 1225: 1214: 1208: 1182: 1180: 1173: 1169: 1167: 1163: 1159: 1150: 1143: 1129: 1125: 1120: 1118: 1114: 1110: 1102: 1098: 1095: 1090: 1088: 1084: 1080: 1076: 1072: 1064: 1059: 1057: 1043: 1041: 1037: 1027: 1025: 1021: 1017: 1007: 1003: 999: 995: 991: 990:scalar values 986: 984: 980: 976: 975:s-expressions 972: 969: 965: 961: 957: 953: 949: 948:double quotes 945: 941: 937: 933: 929: 925: 921: 917: 913: 909: 905: 900: 898: 894: 889: 887: 883: 879: 864: 858: 855: 854: 850: 844: 841: 840: 836: 830: 828:Draw dialect 827: 826: 823: 819: 806: 799: 798: 795: 791: 788: 782: 779: 778: 775: 771: 768: 762: 759: 758: 755: 752: 746: 743: 742: 738: 732: 729: 728: 724: 718: 715: 714: 710: 707: 705:Dialect name 704: 703: 700: 697: 695: 691: 686: 681: 677: 673: 668: 663: 658: 654: 649: 643: 641: 637: 633: 623: 621: 608: 594: 592: 588: 570: 566: 563: 558: 555: 552: 549: 546: 543: 540: 536: 535:REBOL/Command 533: 532: 530: 527: 524: 523: 522: 520: 516: 512: 508: 504: 500: 490: 488: 484: 480: 476: 472: 468: 464: 460: 456: 446: 444: 440: 436: 432: 428: 424: 421: 416: 414: 410: 406: 401: 399: 395: 391: 380: 376: 374: 370: 366: 362: 358: 354: 350: 347: 343: 340: 336: 332: 331: 322: 298: 287: 283: 279: 278: 276: 273: 269: 265: 260: 257: 253: 249: 245: 241: 238:Influenced by 236: 232: 224: 220: 216: 214: 210: 207: 203: 199: 197: 193: 190: 187: 185: 181: 178: 174: 171: 169: 165: 161: 145: 143: 139: 123: 121: 117: 113: 99: 95: 91: 89: 85: 82: 79: 77: 73: 70: 66: 62: 58: 57:data exchange 54: 51: 49: 45: 41: 36: 30: 19: 2094: 1964: 1945:the original 1938: 1926:the original 1921: 1891: 1875: 1863:. Retrieved 1859: 1850: 1838:. Retrieved 1828: 1816:. Retrieved 1812:the original 1802: 1793: 1792: 1785:. Retrieved 1775: 1763:. Retrieved 1753: 1715: 1691: 1650:jsonsaga.ppt 1643: 1614: 1584:. Retrieved 1574: 1559: 1549: 1475: 1471: 1459: 1458: 1449: 1445: 1443: 1434: 1430: 1426: 1422: 1418: 1414: 1410: 1404: 1345: 1341: 1331: 1326: 1314: 1308: 1303: 1299: 1296:nonterminals 1291: 1287: 1283: 1279: 1275: 1271: 1270: 1265: 1259: 1246: 1228: 1217: 1202: 1176: 1164:using infix 1151: 1144: 1121: 1091: 1086: 1074: 1062: 1060: 1049: 1039: 1038:to specific 1033: 1018: 987: 923: 912:declarations 907: 901: 896: 892: 890: 875: 772:definition; 739:programming 698: 684: 679: 666: 661: 656: 652: 647: 644: 635: 629: 617: 606: 586: 584: 564: 556: 550: 544: 534: 528: 496: 486: 482: 478: 474: 470: 466: 462: 458: 454: 452: 423:applications 417: 402: 388: 378: 351:designed by 334: 296: 295: 288:at Wikibooks 29: 2187:MessagePack 2182:FlatBuffers 2172:Cap'n Proto 1959:‹ The 1897:Red project 1818:December 2, 1765:January 23, 1586:January 23, 1468:GUI widgets 1452:2.7.8, the 1350:PEG example 1211:print read 1042:functions. 920:expressions 886:indentation 730:Do dialect 640:interpreted 581:Ease of use 569:interpreter 431:server-side 405:proprietary 2247:Categories 1940:Web Review 1922:LinuxWorld 1787:August 14, 1718:Eyrolles. 1533:References 1460:Rebol/View 1450:Rebol/View 1446:Rebol/Core 1323:characters 1288:do dialect 1280:do dialect 1179:precedence 1149:function. 1109:assignment 1087:do dialect 1079:expression 1063:do dialect 1006:whitespace 1002:characters 998:apostrophe 983:homoiconic 916:statements 820:specifies 662:do dialect 545:REBOL/View 461:xpression 443:multimedia 394:JavaScript 361:dialecting 262:Influenced 69:imperative 61:functional 2073:Web Token 1865:March 14, 1564:R3 source 1476:Rebol/SDK 1474:2.7.8 or 1462:provides 1166:operators 1097:variables 1040:evaluator 1036:arguments 1030:Semantics 1024:semicolon 966:. Unlike 932:delimited 882:free-form 862:function 848:function 834:function 817:function 786:function 766:function 750:function 736:function 722:function 651:. In the 634:, called 557:REBOL/SDK 551:REBOL/IOS 449:Etymology 439:utilities 365:optimized 363:: small, 200:2.7.8 is 88:Developer 2218:uuencode 1961:template 1885:Freecode 1653:Archived 1516:See also 1429:). Both 1419:/Command 1366:Product: 1342:sequence 1300:sequence 1020:Comments 810:function 770:function 711:Purpose 676:function 636:dialects 626:Dialects 457:elative 435:database 420:Internet 382:—  217:.r, .reb 48:Paradigm 2058:EDIFACT 2033:formats 1963:below ( 1552:license 1376:Product 1360:charset 1336:or the 1174:-2 + 3 1128:control 1056:console 944:strings 815:display 804:RebGUI 690:keyword 565:Rebol 3 529:REBOL 2 499:AmigaOS 493:History 427:client- 337:) is a 222:Website 196:License 173:dynamic 154:2012-12 152: ( 132:2011-01 130: ( 105: ( 2207:Cyphal 2202:Thrift 2165:UBJSON 2155:Base64 2150:Base32 2120:Binary 1980:Curlie 1966:Curlie 1901:GitHub 1722:  1698:  1621:  1568:GitHub 1482:Legacy 1386:parse/ 1363:Value: 1357:Digit: 1346:choice 1317:level 1304:choice 1290:, the 1136:either 1085:, the 971:blocks 906:, the 878:syntax 876:Rebol 872:Syntax 860:secure 808:layout 790:object 685:return 667:return 657:return 648:return 630:Rebol 601:layout 576:Design 517:, and 469:bject 441:, and 425:(both 344:and a 229:.rebol 177:strong 2133:ASN.1 2095:Rebol 1976:REBOL 1502:Boron 1435:/View 1431:/Core 1415:/View 1411:/Core 1380:Expr: 1369:Value 1319:parse 1311:parse 1262:parse 1256:parse 1220:print 1083:ALGOL 1014:a + b 994:colon 968:ALGOL 748:parse 688:is a 670:is a 511:Forth 487:Rebol 483:REBOL 465:ased 335:REBOL 297:Rebol 248:Forth 33:Rebol 18:REBOL 2223:yEnc 2209:DSDL 2177:CBOR 2160:BSON 2145:Avro 2110:YAML 2100:TOML 2063:JSON 2048:Atom 1895:The 1879:The 1867:2017 1842:2016 1820:2013 1789:2014 1767:2014 1720:ISBN 1696:ISBN 1619:ISBN 1588:2014 1507:The 1433:and 1427:/IOS 1425:and 1423:/SDK 1395:Expr 1373:Sum: 1344:and 1260:The 1152:The 1147:copy 1140:loop 1061:The 979:Lisp 960:URLs 832:view 784:make 764:make 720:load 612:view 598:view 539:ODBC 519:Self 515:Logo 507:Lisp 479:Lisp 475:LISP 429:and 398:JSON 268:JSON 256:Logo 252:Lisp 244:Self 231:.com 107:1997 100:1997 2213:XDR 2138:SMI 2128:AMF 2105:XML 2090:RDF 2053:CSV 1978:at 1899:at 1883:at 1566:at 1389:all 1383:Sum 1378:]] 1371:]] 1306:). 1172:abs 1010:a+b 977:in 950:or 942:), 934:by 880:is 477:by 433:), 330:-əl 328:REB 272:Red 227:www 2249:: 1937:. 1920:. 1858:. 1791:. 1743:. 1731:^ 1707:^ 1663:^ 1648:, 1642:. 1630:^ 1596:^ 1541:^ 1441:. 1421:, 1417:, 1413:, 1205:Do 1154:do 1138:, 1134:, 1132:if 1119:. 1105:do 1067:do 1058:. 1052:do 1046:do 985:. 918:, 914:, 846:do 812:or 802:or 734:do 682:, 664:, 614:] 603:] 521:. 513:, 509:, 489:. 375:: 367:, 318:əl 270:, 254:, 250:, 246:, 184:OS 175:, 67:, 63:, 59:, 55:, 2023:e 2016:t 2009:v 1869:. 1844:. 1822:. 1769:. 1747:. 1726:. 1702:. 1625:. 1590:. 1495:. 1198:4 1195:* 1192:3 1189:+ 1186:2 904:C 471:L 467:O 463:B 459:E 455:R 321:/ 315:b 312:ɛ 309:r 306:ˈ 303:/ 299:( 156:) 134:) 109:) 20:)

Index

REBOL

Paradigm
language oriented programming
data exchange
functional
prototype-based
imperative
Designed by
Carl Sassenrath
Developer
Stable release
Preview release
Typing discipline
dynamic
strong
OS
cross-platform
License
Freely redistributable software
Apache 2.0 license
Filename extensions
www.rebol.com
Self
Forth
Lisp
Logo
JSON
Red

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.