Red (programming language): Difference between revisions

Content deleted Content added
External links: Category:Software using the BSD license
m Remove stub template(s). Page is start class or higher. Also check for and do General Fixes + Checkwiki fixes using AWB
Line 1:
{{Infobox programming language
| name = Red
| logo = [[File:Red_Language_Tower_LogoRed Language Tower Logo.png|150px|Red Logo (stylized Tower of Hanoi)]]
| paradigm = [[Imperative programming|imperative]], [[functional programming|functional]], [[symbolic programming|symbolic]]
| year = 2011
Line 14:
| influenced =
| operating_system = [[GNU/Linux]], [[Windows]], [[OS X]], [[Syllable Desktop (operating system)|Syllable]]
| license = [[BSD licenses#3-clause_license_clause license .28.22New_BSD_License22New BSD License.22_or_22 or .22Modified_BSD_License22Modified BSD License.22.29|modified BSD license]]
| website = {{url|http://www.red-lang.org/}}
| file_ext =
}}
 
'''Red''' is both an [[imperative programming|imperative]] and [[functional programming]] [[programming language|language]] introduced in 2011 by Nenad Rakocevic. Its syntax and general usage directly overlaps with that of the interpreted [[Rebol]] language (which was introduced in 1997). Yet the implementation choices of Red were geared specifically to overcoming limitations of Rebol, creating what Rakocevic calls a "full stack programming language". Red can be used for extremely high-level programming ([[Domain-specific language|DSL]]s and [[Graphical user interface|GUI]]s) as well as low-level programming ([[Operatingoperating system|operating systems]]s and [[Devicedevice driver|device drivers]]s).
 
Key to the approach is that the language has two parts: '''Red/System''' and '''Red'''. The former is similar to C, but packaged into a Rebol lexical structure ''(e.g. one would write "if x > y [print {Hello}]" instead of "if (x > y) {printf("Hello\n");}")''. Red itself is a [[Homoiconicity|homoiconic language]] capable of meta-programming, whose semantics are more similar to Rebol's. Its runtime library is written in Red/System, and uses a hybrid approach: it [[Compiled language|compiles]] what it can deduce statically, has a [[Just-in-time compilation|just-in-time compiler]] for cases that can make use of it, and falls back onto an embedded [[Interpreter_Interpreter (computing)|interpreter]] when neither of those approaches will suffice.
 
Red seeks to remain independent of any other toolchain, and thus does its own code generation. It's therefore possible to [[Cross compiler|cross-compile]] Red programs from any platform it supports to any other, via a command-line switch. Both Red and Red/System are distributed as [[open-source software]] under the [[BSD licenses#3-clause_license_clause license .28.22New_BSD_License22New BSD License.22_or_22 or .22Modified_BSD_License22Modified BSD License.22.29|modified BSD license]]. The runtime library is distributed under the more permissive [[Boost Software License]].
 
==Language Schema==
[[File:Red_architecture_smallRed architecture small.PNG]]
 
==Introduction==
Line 40:
[[Category:Functional languages]]
[[Category:Software using the BSD license]]
 
{{free-software-stub}}