GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Main page
  • Contents
  • Current events
  • Random article
  • About Wikipedia
  • Contact us
  • Help
  • Learn to edit
  • Community portal
  • Recent changes
  • Upload file
  • Special pages
  • Search
  • Donate

This view

  • Original page
  • New address

GeezerVison is showing en.wikipedia.org — Red (programming language) - Wikipedia

Red
Red Logo: a stylized rectangular Tower of Hanoi
ParadigmMulti-paradigm: imperative, functional, symbolic
FamilyRebol
Designed byNenad Rakočević[1]
DeveloperNenad Rakočević
First appearedFebruary 2011 (2011-02)
Stable release
0.6.6[2] (Beta) / March 19, 2025 (2025-03-19)
Implementation languageRebol, Red
PlatformARM, x86
OSUnix-like: Android, Linux, macOS; Windows
LicenseBSD 3-clause, Boost
Filename extensions.red, .reds
Websitewww.red-lang.org
Influenced by
Rebol, Lisp, Scala, Lua

Red is a programming language designed to overcome the limits of the programming language Rebol.[3] Red was introduced in 2011 by Nenad Rakočević,[4] and is both an imperative and functional programming language. Its syntax and general usage overlaps that of the interpreted Rebol language.[5]

The implementation choices of Red intend to create a full stack programming language:[4][6] Red can be used for extremely high-level programming (domain-specific languages (DSLs) and graphical user interfaces (GUIs) and low-level programming (operating systems and device drivers). Key to the approach is that the language has two parts: Red/System and Red.[7]

  • Red/System is similar to C, but packaged into a Rebol lexical structure – for example, one would write if x > y [print "Hello"] instead of if (x > y) {printf("Hello\n");}.
  • Red is a homoiconic language, which is capable of metaprogramming with Rebol-like semantics.[3][8] Red's runtime library is written in Red/System, and uses a hybrid approach: it compiles what it can deduce statically and uses an embedded interpreter otherwise. The project roadmap includes a just-in-time compiler for cases in between, but this has not yet been implemented.

Red seeks to remain independent of any other toolchain; it does its own code generation.[3] It is therefore possible to cross-compile[6] 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 3-clause (modified) license. The runtime library is distributed under the more permissive Boost Software License.

As of version 0.6.4 Red includes a garbage collector "the Simple GC".[9]

Red Language architecture schema

Introduction

Red was introduced in the Netherlands in February 2011 at the Rebol & Boron conference[10] by its author Nenad Rakočević. In September 2011, the Red programming language was presented to a larger audience during the Software Freedom Day 2011.[11][12] Rakočević is a long-time Rebol developer known as the creator of the Cheyenne HTTP server.[13]

Features

Red's syntax and semantics are very close to those of Rebol.[4][14] Like Rebol, it strongly supports metaprogramming and domain-specific languages (DSLs) and is therefore an efficient tool for dialecting (creating embedded DSLs). Red includes a dialect named Red/System, a C-level language which provides systems programming facilities.[7] Red is easy to integrate with other tools and languages as a dynamic-link library (DLL) (libRed) and very lightweight (around 1 MB). It is also able to cross-compile to various platforms (see #Cross compiling section below) and create packages for platforms that require them (e.g., .APK on Android).[7] Red also includes a fully reactive cross-platform GUI system based on an underlying reactive dataflow engine, a 2D drawing dialect comparable to SVG, compile-time and runtime macro support, and more than 40 standard datatypes.

Goals

The following is the list of Red's Goals as presented on the Software Freedom Day 2011:[11][12]

  • Simplicity ("An IDE should not be necessary to write code.")
  • Compactness ("Being highly expressive maximizes productivity.")
  • Speed ("If too slow, it cannot be general-purpose enough.")
  • Be "Green", Have a Small Footprint ("Because resources are not limitless.")
  • Ubiquity ("Spread everywhere.")
  • Portability, Write once run everywhere ("That's the least expected from a programming language.")
  • Flexibility ("Not best but good fit for any task!")

Commercial applications

The following commercial applications are currently developed on Red:

  • DiaGrammar[15] – Live coded diagramming
  • SmartXML[16] – XML parsing tool

Development

Red's development is planned to be in two phases:

  1. Initial phase: Red and Red/System compilers written in Rebol 2
  2. Bootstrap phase: Red and Red/System compilers complemented by a Red just-in-time compilation (JIT) compiler, all written in Red.

Cross compiling

As of 2018, supported cross-compiling targets include:[4]

  • DOS: Windows, x86, console (and GUI) applications
  • Windows: Windows, x86, GUI applications
  • Linux: Linux, x86
  • Linux-ARM: Linux, ARMv5, armel (soft-float)
  • Raspberry Pi: Linux, ARMv5, armhf (hard-float)
  • FreeBSD: x86
  • Darwin: macOS Intel, console (and GUI) applications
  • Android: Android, ARMv5
  • Android-x86: Android, x86

(As of 2018, Red applications are 32-bit. Plans are to move to 64-bit in future.[4])

See also

  • Comparison of programming languages
  • History of programming languages
  • List of programming languages
  • List of programming languages by type

References

  1. ↑ "Creator of Red". GitHub.
  2. ↑ "Red's improvements". red-lang. Retrieved April 1, 2025.
  3. 1 2 3 "Getting Started with GUI Programming using Red Language". Studytonight. Retrieved September 17, 2021.
  4. 1 2 3 4 5 Balbaert 2018.
  5. ↑ "Interview with Nenad Rakocevic about Red, a Rebol inspired programming language". Not a Monad Tutorial. 28 August 2015. Archived from the original on 23 March 2023. Retrieved August 28, 2015.
  6. 1 2 "6 Unusual & Groundbreaking Programming Languages to Learn in 2023". makeuseof.com. 18 October 2023.
  7. 1 2 3 Lucas, Mathis (21 July 2023). "Red: an imperative and functional programming language that is also a "full battery" language". Developpez.com. Retrieved 16 January 2023.
  8. ↑ Sasu, Alexandru (22 November 2018). "Review of Red". Softpedia. Retrieved February 21, 2024.
  9. ↑ lucindamichele. "0.6.4 Simple GC and Pure Red GUI Console". Retrieved 2018-12-16. The main feature for 0.6.4 is what we call the Simple GC (Garbage Collector). A more advanced GC is planned for the future
  10. ↑ « New Red Programming Language Gets Syllable Backend », osnews.com, May 2011.
  11. 1 2 « Red Programming Language: Red at Software Freedom Day 2011 », red-lang.org, September 14, 2011.
  12. 1 2 "Software Freedom Day 2011: Red programming language, a new REBOL dialect". YouTube. 16 September 2011. Retrieved 17 January 2023.
  13. ↑ « What is Cheyenne? » Last referenced Nov 2017.
  14. ↑ "The Dynamic Mapping Architecture". OhioLINK. December 2021.
  15. ↑ «DiaGrammar», red-lang.org, March 2020.
  16. ↑ «SmartXML», redata.dev.

Further reading

  • Balbaert, Ivo (May 2018). Learn Red - Fundamentals of Red. Packt Publishing. ISBN 978-1789130706.

External links

Wikimedia Commons logo
Wikimedia Commons has media related to Red (programming language).
  • Official website
  • Latest builds from official website
  • Red on GitHub
  • Redprogramming.com
  • Helpin' Red Archived 2021-09-28 at the Wayback Machine
Retrieved from "https://en.wikipedia.org/w/index.php?title=Red_(programming_language)&oldid=1357581409"
Categories:
  • Programming languages
  • Systems programming languages
  • Extensible syntax programming languages
  • Domain-specific programming languages
  • High-level programming languages
  • Homoiconic programming languages
  • Procedural programming languages
  • Functional languages
  • Cross-platform free software
  • Cross-platform software
  • Free and open source compilers
  • Free and open source interpreters
  • Software using the BSD license
  • Software using the Boost license
  • Programming languages created in 2011
  • 2011 software
Hidden categories:
  • Articles with short description
  • Short description is different from Wikidata
  • Articles with example Smalltalk code
  • Articles with example C code
  • Articles containing potentially dated statements from 2018
  • All articles containing potentially dated statements
  • Commons category link from Wikidata
  • Webarchive template wayback links
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.