To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Red (programming language)

From Wikipedia, the free encyclopedia

Red
Red Logo (stylized Tower of Hanoi)
ParadigmMulti-paradigm: imperative, functional, symbolic
Designed byNenad Rakočević[1]
DeveloperNenad Rakočević
First appeared2011
Stable release
0.6.5[2] (Beta) / February 19, 2024
OSLinux, Windows, OS X
Licensemodified BSD and Boost
Filename extensions.red, .reds
Websitewww.red-lang.org Edit this at Wikidata
Influenced by
Rebol, Lisp, Scala, Lua

Red is a programming language designed to overcome the limitations 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 (DSLs and GUIs) as well as 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 meta-programming 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 modified BSD 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

YouTube Encyclopedic

  • 1/5
    Views:
    17 986
    766
    669 733
    688
    3 639
  • Red Monk's Programming Language Rankings in 2020
  • Red/C3 - Smart contracts programming made decent.
  • How To Become Red Coder? (codeforces.com)
  • Create Red Rose in Python |Python Projects | #shorts #python #programming #pythonprogramming
  • How To Translate Any Programming Language in Seconds!

Transcription

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 a highly efficient tool for dialecting (creating embedded DSLs). Red includes a dialect called Red/System, a C-level language which provides system programming facilities.[7] Red is easy to integrate with other tools and languages as a DLL (libRed) and very lightweight (around 1 MB). It is also able to cross-compile to various platforms (see Cross Compilation 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 done 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 JIT-compiler, all written in Red

Cross compilation

Red currently supports the following cross-compilation targets:[4]

(Note: Presently, Red applications are 32-bit, but it is planned to switch to 64-bit in the future.[4])

Hello World!

The "Hello, World!" program in Red:

Red [Title: "Simple hello world script"]
print "Hello, World!"

Factorial example

IMPORTANT: These are intended as syntax examples. Until Red has 64-bit support, the integer example will overflow a 32-bit integer very quickly. Changing that to `float!` will go farther, but these are merely to show the syntax of the language.

The following is a factorial example in Red:

Red [Title: "A factorial script"]  ; Note: The title is optional.

factorial: func [
	x [integer!]  ; Giving the type of an argument in Red is optional
][
	either x = 0 [1][x * factorial x - 1]
]

The following is the same factorial example in Red/System (in this very simple case, the source code is very similar to Red's version):

Red/System [Title: "A factorial script"]

factorial: func [
	x       [integer!]                   ; This is compulsory in Red/System
	return: [integer!]                   ; This is compulsory in Red/System
][
	either x = 0 [1][x * factorial x - 1]
]

See also

References

  1. ^ "Creator of Red". GitHub.
  2. ^ "Red's changelog". red-lang. Retrieved February 21, 2024.
  3. ^ a b c "Getting Started with GUI Programming using Red Language". Studytonight. Retrieved September 17, 2021.
  4. ^ a b c d e Balbaert 2018.
  5. ^ "Interview with Nenad Rakocevic about Red, a Rebol inspired programming language". Not a Monad Tutorial. 28 August 2015. Retrieved August 28, 2015.
  6. ^ a b "6 Unusual & Groundbreaking Programming Languages to Learn in 2023". makeuseof.com. 18 October 2023.
  7. ^ a b c 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. ^ a b « Red Programming Language: Red at Software Freedom Day 2011 », red-lang.org, September 14, 2011.
  12. ^ a b "Software Freedom Day 2011: Red programming language, a new REBOL dialect". YouTube. 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

External links

This page was last edited on 18 March 2024, at 10:51
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.