REBOL/Core Features
The core interpreter, functions, datatypes, and networking.
See also: REBOL/View Features
REBOL/Core is the kernel of the REBOL distributed computing platform. Designed for the semantic exchange and interpretation of information REBOL/Core is the engine that powers all of our products.
REBOL/Core provides system-independent code, a common data model, compression, and more than a dozen Internet protocols built-in.
Feature Summary
- Machine and System Independent
Programs run on more than 40 platforms without modification. Programs that you create on your PC will run on your Windows/CE portable, your graphic artist's Macintosh, your system administrator's Linux, your web site's Sun Solaris, and dozens of other platforms. - Integrated Networking
REBOL comes with several common Internet protocols built-in. No includes, imports, or special libraries are needed. Protocols include HTTP, FTP, SMTP, POP, APOP, IMAP, NNTP, Finger, Daytime and more. You can also roll your own with our TCP and UDP support. - Rich Set of Built-in Datatypes
In addition to the datatypes found in most languages, REBOL can also express money, times, dates, words, tags, logic, lists, hashes, tuples, XY pairs, and many other datatypes. These are built-in. No other REBOL modules or libraries are required. This eliminates the "run anywhere but you don't have everything you need" syndrome and provides a high level of consistency between all platforms. - Domain Specific Dialecting
Doctors express their ideas in medical terms, stockbrokers in trade terms, and quarterbacks in football terms. Why? Because it's more efficient and productive. That's the benefit of dialecting. Dialecting is the ability to create sub-languages that provide you with extra leverage and productivity by expressing your solutions in terms that are best suited to your purpose. As an example, check out REBOL/View's Visual Interface Dialect. - Multi-level Sandboxes
Several levels of operational security are built-in. The default is a "safe" mode, where absolutely no files can be written to or deleted from your system without your permission. You can adjust the security to your level of comfort and the trust you place in the script you are running. - Clean Syntax
REBOL is intended to be read by ordinary humans. The language is consistent and free from unnecessary punctuation. Datatypes such as dates, times, money, URLS, email, TCP addresses, are written exactly how you would expect. No special "constructor" syntax is required. - Compression Built-in
You can compress and decompress text and binary files directly from the language, providing you greater efficiency in data transfer. - Small Program Footprint
REBOL downloads from the net in seconds, or fits on a floppy with room to spare for your scripts. On most platforms the REBOL system is less than 250 KB in size... but, don't underestimate it! Every one of those bytes is packed with substantial power. - Minimal Installation
Just run it. Want to give it to a friend? Just copy the program file to a USB memory stick or send it as an email.
Advanced Features
- A parser dialect
Provides a direct method of grammar specification for dialecting as well as for pattern matching. - The language allows embedded documentation
Directly in the interfaces of functions and the headers of scripts. The documentation travels with your program, and meta functions like Help and library archiving can make use of the info. - Integrated help system.
Also provides embedded commenting for scripts and functions. Script headers programmatically identify every program and its purpose, version, date, author, execution requirements, and much more. - The language is symbolic
This allows words to be used to represent meaning in any data structure or data base. - It is highly reflective
Programs can easily read and modify other programs. In fact, REBOL is its own meta-language. - Functions are highly polymorphic
For instance, you can add not only numbers, but also times, dates, tuples, money, and xy-pairs. - Refinement paths
Provided generic namespace navigation. - Definitional scoping
Allows definition-based name binding on demand. - Prototype-based objects
Allow cloning, extending, and one-of-a-kind creation. - Full exception handling
For error recovery. - Auto-expanding arrays
Series for lists, strings, binary, etc. - Automatic storage management
For simpler programs.