Červená (programovací jazyk) - Red (programming language)
![]() | |
Paradigma | rozkazovací způsob, funkční, symbolický |
---|---|
Navrhl | Nenad Rakočević |
Vývojář | Nenad Rakočević |
Poprvé se objevil | 2011 |
Stabilní uvolnění | |
OS | Linux, Okna, OS X, Slabika |
Licence | upravená BSD a Zvýšit |
Přípony názvu souboru | .red, .reds |
webová stránka | www![]() |
Ovlivněno | |
Rebol, Scala, Lua |
Červené je programovací jazyk navržen tak, aby překonal omezení programovacího jazyka Rebol. Red představil v roce 2011 Nenad Rakočević a je oba rozkazovací způsob a Funkcionální programování Jazyk. Jeho syntaxe a obecné použití se překrývá s interpretovaným jazykem Rebol.
Možnosti implementace Red mají v úmyslu vytvořit plný stack programovací jazyk: Červenou lze použít pro programování na extrémně vysoké úrovni (DSL a GUI ) a také programování na nízké úrovni (operační systémy a ovladače zařízení ). Klíčem k přístupu je, že jazyk má dvě části: Červená / Systém a Červené.
- Červená / Systém je podobný C, ale zabalený do lexikální struktury Rebol - například by se psalo
-li X > y [tisk "Ahoj"]
namísto-li (X > y) {printf("Ahoj n");}
. - Červené je homoikonický jazyk schopný metaprogramování se sémantikou podobnou Rebolově. Redova běhová knihovna je napsána v Red / System a používá hybridní přístup: it sestavuje co může staticky odvodit a používá vložený tlumočník v opačném případě. Plán projektu zahrnuje a kompilátor just-in-time pro případy mezi tím, ale to ještě nebylo implementováno.
Red se snaží zůstat nezávislý na jakémkoli jiném řetězec nástrojů; provádí vlastní generování kódu. Je proto možné křížová kompilace Červené programy z jakékoli platformy, kterou podporuje, na jakoukoli jinou prostřednictvím přepínače příkazového řádku. Red i Red / System jsou distribuovány jako open-source software pod upravená licence BSD. Runtime knihovna je distribuována pod více tolerantní Zvyšte licenci softwaru.
Od verze 0.6.4 obsahuje Red a Popelář "jednoduchý GC".[1]
Úvod
Červená byla představena v Holandsko února 2011 na Konference Rebol & Boron[2] jeho autor Nenad Rakočević. V září 2011 byl programovací jazyk Red představen širšímu publiku během Den svobody softwaru 2011.[3] Rakocevic je dlouholetý vývojář Rebol známý jako tvůrce Čejenů HTTP server.[4]
Funkce
Redova syntaxe a sémantika jsou velmi blízké syntaxi a sémantice Rebol. Stejně jako Rebol silně podporuje metaprogramování a jazyky specifické pro doménu (DSL ), a je tedy vysoce účinným nástrojem pro dialektování (vytváření vložených DSL). Red zahrnuje dialekt s názvem Red / System, jazyk na úrovni C, který poskytuje možnosti programování systému. Red je snadno integrovatelný s jinými nástroji a jazyky jako DLL (libRed) a velmi lehký (kolem 1 MB). Je také schopen křížově kompilovat na různé platformy (viz část Cross Compilation níže) a vytvářet balíčky pro platformy, které je vyžadují (např. .APK pro Android). Red také zahrnuje plně reaktivní multiplatformní systém GUI založený na základním reaktivním datovém stroji, 2D dialekt kreslení srovnatelný s SVG, podporu kompilačních a běhových maker a více než 40 standardních datových typů.
Cíle
Následuje seznam cílů Red's, jak jsou uvedeny na Den svobody softwaru 2011:
- Jednoduchost („K zápisu kódu by nemělo být nutné IDE.“)
- Kompaktnost („Vysoká expresivita maximalizuje produktivitu.“)
- Rychlost („Pokud je příliš pomalá, nemůže být dostatečně univerzální.“)
- Buďte „zelení“, mějte malou stopu („Protože zdroje nejsou neomezené.“)
- Všudypřítomnost („Šíření všude.“)
- Přenositelnost, zápis jednou spuštěn všude („To je nejméně očekávané od programovacího jazyka.“)
- Flexibilita („Ne nejlepší, ale vhodná pro jakýkoli úkol!“)
Rozvoj
Vývoj Redu je plánován ve dvou fázích:
- Počáteční fáze: Red a Red / System kompilátory napsané v Rebol 2
- Bootstrap fáze: kompilátory Red a Red / System doplněné kompilátorem Red JIT, vše napsané červeně
Křížová kompilace
Červená aktuálně podporuje následující cíle křížové kompilace:
- MS-DOS: Okna, x86, konzolové (a GUI) aplikace
- Okna: Windows, x86, GUI aplikace
- Linux: Linux, x86
- Linux-ARM: Linux, ARMv5, armel (soft-float)
- Raspberry Pi: Linux, ARMv5, armhf (hard-float)
- FreeBSD: x86
- Darwine: OS X Intel, konzolové (a GUI) aplikace
- Slabika: Slabika OS, x86
- Android: Android, ARMv5
- Android-x86: Android, x86
(Poznámka: Tento seznam se bude časem zvětšovat, a proto by měl být považován za neúplný.)
Ahoj světe!
Červené [Titul: "Jednoduchý ahoj světový skript"]tisk "Ahoj světe!"
Faktoriální příklad
DŮLEŽITÉ: Jedná se o příklady syntaxe. Dokud Red nemá 64-bit podpora, příklad celého čísla přeteče a 32-bit celé číslo velmi rychle. Změna na „float!“ Půjde dále, ale jde pouze o ukázku syntaxe jazyka.
Následuje příklad faktoriálu v červené barvě:
Červené [Titul: „Faktoriální skript“] ; Poznámka: Název je volitelný.faktoriál: func [ X [celé číslo!] ; Uvedení typu argumentu v červené barvě je volitelné][ buď X = 0 [1][X * faktoriál X - 1]]
Následuje stejný faktoriální příklad v Red / System (v tomto velmi jednoduchém případě je zdrojový kód velmi podobný Redově verzi):
Červená / Systém [Titul: „Faktoriální skript“]faktoriál: func [ X [celé číslo!] ; Toto je povinné v Red / System vrátit se: [celé číslo!] ; Toto je povinné v Red / System][ buď X = 0 [1][X * faktoriál X - 1]]
Viz také
Reference
- ^ A b lucindamichele. „0.6.4 Simple GC and Pure Red GUI Console“. Citováno 2018-12-16.
Hlavní funkcí pro 0.6.4 je to, co nazýváme Simple GC (Garbage Collector). Do budoucna se plánuje pokročilejší GC
- ^ «Nový červený programovací jazyk získá slabiku Backend», osnews.com, Květen 2011.
- ^ «Red Programming Language: Red at Software Freedom Day 2011», red-lang.org, 14. září 2011.
- ^ «Co je to Čejen? » Poslední zmínka v listopadu 2017.