REBOL 3 Docs Guide Concepts Functions Datatypes Errors
  TOC < Back Next >   Updated: 18-Feb-2009 Edit History  

REBOL 3 Concepts: Expressions

Pending Revision

This document was written for R2 and has yet to be revised for R3.


The foremost goal of REBOL is to establish a standard method of communication that spans all computer systems. REBOL provides a simple, direct means of expressing any kind of information with optimal flexibility and minimal syntax. For example, examine the following line:

Sell 100 shares of "Acme" at $47.97 per share

The line looks a lot like English making it easy to compose if you are sending it and easy to understand if you are receiving it. However, this line is actually a valid expression in REBOL, so your computer could also understand and act on it. (Note that the line is a "dialect" of REBOL. It can be in-directly evaluated. More on this concept below.)

REBOL provides a common language between you and your computer. In addition, if your computer sends this expression to your stock broker's computer, which is also running REBOL, your stock broker's computer can understand the expression and act on it. So, REBOL provides a common language between computers. And, the line could be sent to millions of other computer systems that could also act on it.

The following line is another example of a REBOL expression:

Reschedule exam for 2-January-1999 at 10:30

The expression shown in the above example (written in another dialect) may have come from your doctor typing it, or perhaps it originated from an application that was run by your doctor. It does not matter. What is important is that the expression can be acted upon regardless of the type of computer, hand-held device, kiosk, or television console you are using.

The data values (numbers, strings, prices, dates, and times) in all of the expressions shown in the previous examples are standardized valid REBOL formats. The words, however, depend on a specific context of interpretation to convey their meaning. Words such as sell, at, and read have different meanings in different contexts. The words are relative expressions -- their meaning is context dependent.

Expressions can be processed in one of two ways: directly by the REBOL interpreter, or indirectly by a REBOL script. An expression processed indirectly is called a dialect. The previous examples are dialects, so they are processed by a script. The following example is not a dialect and is processed directly by the REBOL interpreter:

send read

In this example the words [bad-link:functions/send.txt] and read are functions that are processed by the REBOL interpreter.

The distinction REBOL makes is that information is either directly or indirectly interpreted. The distinction is not whether information is code or data, but how it is processed. In REBOL code is often handled as data and data is frequently processed as code, so the traditional division between code and data blurs. How information is processed determines whether it is code or data.

  TOC < Back Next > - WIP Wiki Feedback Admin