421:) 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. 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). 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.
754:
1215:
170:
373:
1569:
768:
1541:
27:
965:
912:
1603:
1115:
1273:
326:, which is capable of meta-programming with Rebol-like semantics. Red's runtime library is written in Red/System, and uses a hybrid approach: it
1658:
1608:
866:
693:
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):
1557:
991:
1653:
1623:
1618:
1613:
1643:
1648:
1562:
1598:
350:
Red programs from any platform it supports to any other, via a command-line switch. Both Red and Red/System are distributed as
1633:
1552:
796:
393:
by its author Nenad Rakočević. In
September 2011, the Red programming language was presented to a larger audience during the
366:
759:
1028:
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
644:
integer very quickly. Changing that to `float!` will go farther, but these are merely to show the syntax of the language.
1293:
1266:
781:
1190:
1039:
1298:
1638:
1303:
786:
1593:
1572:
1504:
1377:
1259:
1242:
1017:
612:
1628:
1547:
1525:
1479:
1452:
1427:
1387:
791:
259:
is similar to C, but packaged into a Rebol lexical structure – for example, one would write
1519:
1422:
1392:
190:
1494:
1489:
1432:
1412:
1058:
773:
186:
90:
1437:
1333:
1316:
585:
194:
1447:
1402:
575:
491:
941:
602:(Note: Presently, Red applications are 32-bit, but it is planned to switch to 64-bit in the future.)
1484:
1367:
418:
335:
233:
229:
452:
Portability, Write once run everywhere ("That's the least expected from a programming language.")
331:
1663:
1353:
966:"Red: an imperative and functional programming language that is also a "full battery" language"
359:
218:
214:
139:
47:
43:
1282:
430:
394:
355:
351:
206:
135:
51:
39:
34:
494:
phase: Red and Red/System compilers complemented by a Red JIT-compiler, all written in Red
8:
1358:
1214:
221:
language. Its syntax and general usage overlaps that of the interpreted Rebol language.
169:
146:
68:
836:
1338:
1186:
1178:
517:
327:
397:
2011. Rakočević is a long-time Rebol developer known as the creator of the
Cheyenne
1174:
637:
589:
556:
542:
538:
237:
130:
110:
1246:
913:"Interview with Nenad Rakocevic about Red, a Rebol inspired programming language"
414:
58:
347:
225:
1078:
1587:
1457:
323:
241:
97:
228:
programming language: Red can be used for extremely high-level programming (
1509:
1348:
1220:
548:
446:
Be "Green", Have a Small
Footprint ("Because resources are not limitless.")
1079:"Software Freedom Day 2011: Red programming language, a new REBOL dialect"
26:
1102:
398:
386:
372:
1251:
1059:« Red Programming Language: Red at Software Freedom Day 2011 »
1417:
1182:
942:"6 Unusual & Groundbreaking Programming Languages to Learn in 2023"
464:
The following commercial applications are currently developed on Red:
1514:
1239:
343:
767:
1407:
1397:
566:
209:
designed to overcome the limitations of the programming language
119:
1132:
1040:« New Red Programming Language Gets Syllable Backend »
636:
IMPORTANT: These are intended as syntax examples. Until Red has
503:
Red currently supports the following cross-compilation targets:
213:. Red was introduced in 2011 by Nenad Rakočević, and is both an
1474:
1442:
1326:
1229:
1148:
821:
816:
641:
507:
440:
Compactness ("Being highly expressive maximizes productivity.")
358:. The runtime library is distributed under the more permissive
346:; it does its own code generation. It is therefore possible to
1234:
1382:
1372:
1343:
1321:
1225:
560:
552:
534:
527:
523:
485:
429:
The following is the list of Red's Goals as presented on the
410:
210:
182:
115:
1208:
437:
Simplicity ("An IDE should not be necessary to write code.")
338:
for cases in between, but this has not yet been implemented.
160:
1464:
579:
443:
Speed ("If too slow, it cannot be general-purpose enough.")
244:). Key to the approach is that the language has two parts:
123:
1499:
1469:
867:"Getting Started with GUI Programming using Red Language"
595:
570:
511:
484:
Initial phase: Red and Red/System compilers written in
480:
Red's development is planned to be done in two phases:
895:
893:
891:
889:
887:
409:
Red's syntax and semantics are very close to those of
224:
The implementation choices of Red intend to create a
749:
884:
670:; Giving the type of an argument in Red is optional
455:
Flexibility ("Not best but good fit for any task!")
330:what it can deduce statically and uses an embedded
1585:
1054:
1052:
1073:
1071:
16:Computer programming language released in 2011
1267:
647:The following is a factorial example in Red:
640:support, the integer example will overflow a
342:Red seeks to remain independent of any other
1049:
959:
957:
955:
1068:
1540:
1274:
1260:
1213:
1126:
1018:"0.6.4 Simple GC and Pure Red GUI Console"
1015:
459:
334:otherwise. The project roadmap includes a
168:
1281:
952:
1168:
1142:
983:
899:
371:
1604:Extensible syntax programming languages
1586:
1659:Programming languages created in 2011
1609:Domain-specific programming languages
1255:
963:
936:
934:
797:List of programming languages by type
582:Intel, console (and GUI) applications
990:Sasu, Alexandru (22 November 2018).
989:
861:
859:
857:
760:Free and open-source software portal
631:
498:
236:) as well as low-level programming (
1221:Latest builds from official website
782:Comparison of programming languages
468:DiaGrammar — Live coded diagramming
413:. Like Rebol, it strongly supports
365:As of version 0.6.4 Red includes a
13:
1162:
1116:"The Dynamic Mapping Architecture"
931:
722:; This is compulsory in Red/System
716:; This is compulsory in Red/System
14:
1675:
1200:
1009:
854:
1654:Software using the Boost license
1624:Procedural programming languages
1619:Homoiconic programming languages
1614:High-level programming languages
1568:
1567:
1539:
787:History of programming languages
766:
752:
520:: Windows, x86, GUI applications
514:, console (and GUI) applications
376:Red Language architecture schema
25:
1644:Free compilers and interpreters
1171:Learn Red - Fundamentals of Red
1108:
1103:« What is Cheyenne? »
1096:
1033:
606:
449:Ubiquity ("Spread everywhere.")
417:and domain-specific languages (
380:
1649:Software using the BSD license
964:Lucas, Mathis (21 July 2023).
905:
829:
809:
655:; Note: The title is optional.
475:
1:
1599:Systems programming languages
802:
792:List of programming languages
1634:Cross-platform free software
471:SmartXML — XML parsing tool.
391:Rebol & Boron conference
7:
774:Computer programming portal
745:
404:
10:
1680:
1169:Balbaert, Ivo (May 2018).
385:Red was introduced in the
1535:
1312:
1289:
1105:Last referenced Nov 2017.
626:"Hello, World!"
275:
260:
181:
176:
155:
145:
129:
109:
105:
89:
85:
77:
67:
57:
33:
24:
695:
649:
617:
424:
389:in February 2011 at the
100:) / February 19, 2024
1639:Cross-platform software
613:"Hello, World!" program
460:Commercial applications
594:Android-x86: Android,
377:
360:Boost Software License
219:functional programming
1594:Programming languages
1283:Programming languages
1065:, September 14, 2011.
375:
336:just-in-time compiler
1629:Functional languages
917:Not a Monad Tutorial
431:Software Freedom Day
395:Software Freedom Day
356:modified BSD license
352:open-source software
207:programming language
324:homoiconic language
147:Filename extensions
78:First appeared
21:
1245:2021-09-28 at the
1235:Redprogramming.com
948:. 18 October 2023.
378:
19:
1581:
1580:
1563:Non-English-based
837:"Red's changelog"
632:Factorial example
603:
499:Cross compilation
369:"the Simple GC".
367:garbage collector
238:operating systems
200:
199:
1671:
1571:
1570:
1543:
1542:
1276:
1269:
1262:
1253:
1252:
1217:
1212:
1211:
1209:Official website
1196:
1175:Packt Publishing
1156:
1146:
1140:
1130:
1124:
1123:
1122:. December 2021.
1112:
1106:
1100:
1094:
1093:
1091:
1089:
1075:
1066:
1056:
1047:
1037:
1031:
1030:
1025:
1024:
1016:lucindamichele.
1013:
1007:
1006:
1004:
1002:
987:
981:
980:
978:
976:
961:
950:
949:
938:
929:
928:
926:
924:
919:. 28 August 2015
909:
903:
897:
882:
881:
879:
877:
863:
852:
851:
849:
847:
833:
827:
826:
817:"Creator of Red"
813:
776:
771:
770:
762:
757:
756:
755:
741:
738:
735:
732:
729:
726:
723:
720:
717:
714:
711:
708:
705:
702:
699:
689:
686:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
627:
624:
621:
601:
315:
314:
311:
308:
305:
302:
299:
296:
293:
290:
287:
284:
281:
278:
273:
272:
269:
266:
263:
172:
167:
164:
162:
59:Designed by
29:
22:
18:
1679:
1678:
1674:
1673:
1672:
1670:
1669:
1668:
1584:
1583:
1582:
1577:
1531:
1308:
1285:
1280:
1247:Wayback Machine
1207:
1206:
1203:
1193:
1165:
1163:Further reading
1160:
1159:
1147:
1143:
1131:
1127:
1114:
1113:
1109:
1101:
1097:
1087:
1085:
1077:
1076:
1069:
1057:
1050:
1038:
1034:
1022:
1020:
1014:
1010:
1000:
998:
992:"Review of Red"
988:
984:
974:
972:
962:
953:
940:
939:
932:
922:
920:
911:
910:
906:
898:
885:
875:
873:
865:
864:
855:
845:
843:
835:
834:
830:
815:
814:
810:
805:
772:
765:
758:
753:
751:
748:
743:
742:
739:
736:
733:
730:
727:
724:
721:
718:
715:
712:
709:
706:
703:
700:
697:
691:
690:
687:
684:
681:
678:
675:
672:
669:
666:
663:
660:
657:
654:
651:
634:
629:
628:
625:
622:
619:
609:
501:
478:
462:
427:
415:metaprogramming
407:
383:
312:
309:
306:
303:
300:
297:
294:
291:
288:
285:
282:
279:
276:
270:
267:
264:
261:
159:
101:
73:Nenad Rakočević
63:Nenad Rakočević
17:
12:
11:
5:
1677:
1667:
1666:
1661:
1656:
1651:
1646:
1641:
1636:
1631:
1626:
1621:
1616:
1611:
1606:
1601:
1596:
1579:
1578:
1576:
1575:
1565:
1560:
1555:
1550:
1536:
1533:
1532:
1530:
1529:
1522:
1517:
1512:
1507:
1502:
1497:
1492:
1487:
1482:
1477:
1472:
1467:
1462:
1461:
1460:
1450:
1445:
1440:
1435:
1430:
1425:
1420:
1415:
1410:
1405:
1400:
1395:
1390:
1385:
1380:
1375:
1370:
1365:
1364:
1363:
1362:
1361:
1356:
1341:
1336:
1331:
1330:
1329:
1319:
1313:
1310:
1309:
1307:
1306:
1301:
1296:
1290:
1287:
1286:
1279:
1278:
1271:
1264:
1256:
1250:
1249:
1237:
1232:
1223:
1218:
1202:
1201:External links
1199:
1198:
1197:
1192:978-1789130706
1191:
1164:
1161:
1158:
1157:
1141:
1125:
1107:
1095:
1067:
1048:
1032:
1008:
982:
970:Developpez.com
951:
930:
904:
883:
853:
828:
807:
806:
804:
801:
800:
799:
794:
789:
784:
778:
777:
763:
747:
744:
696:
650:
633:
630:
618:
608:
605:
599:
598:
592:
583:
573:
564:
546:
531:
521:
515:
500:
497:
496:
495:
489:
477:
474:
473:
472:
469:
461:
458:
457:
456:
453:
450:
447:
444:
441:
438:
426:
423:
406:
403:
382:
379:
340:
339:
317:
242:device drivers
198:
197:
179:
178:
174:
173:
157:
153:
152:
149:
143:
142:
133:
127:
126:
113:
107:
106:
103:
102:
95:
93:
91:Stable release
87:
86:
83:
82:
79:
75:
74:
71:
65:
64:
61:
55:
54:
40:Multi-paradigm
37:
31:
30:
15:
9:
6:
4:
3:
2:
1676:
1665:
1664:2011 software
1662:
1660:
1657:
1655:
1652:
1650:
1647:
1645:
1642:
1640:
1637:
1635:
1632:
1630:
1627:
1625:
1622:
1620:
1617:
1615:
1612:
1610:
1607:
1605:
1602:
1600:
1597:
1595:
1592:
1591:
1589:
1574:
1566:
1564:
1561:
1559:
1556:
1554:
1551:
1549:
1546:
1538:
1537:
1534:
1528:
1527:
1523:
1521:
1518:
1516:
1513:
1511:
1508:
1506:
1503:
1501:
1498:
1496:
1493:
1491:
1488:
1486:
1483:
1481:
1478:
1476:
1473:
1471:
1468:
1466:
1463:
1459:
1458:Object Pascal
1456:
1455:
1454:
1451:
1449:
1446:
1444:
1441:
1439:
1436:
1434:
1431:
1429:
1426:
1424:
1421:
1419:
1416:
1414:
1411:
1409:
1406:
1404:
1401:
1399:
1396:
1394:
1391:
1389:
1386:
1384:
1381:
1379:
1376:
1374:
1371:
1369:
1366:
1360:
1357:
1355:
1352:
1351:
1350:
1347:
1346:
1345:
1342:
1340:
1337:
1335:
1332:
1328:
1325:
1324:
1323:
1320:
1318:
1315:
1314:
1311:
1305:
1302:
1300:
1297:
1295:
1292:
1291:
1288:
1284:
1277:
1272:
1270:
1265:
1263:
1258:
1257:
1254:
1248:
1244:
1241:
1238:
1236:
1233:
1231:
1227:
1224:
1222:
1219:
1216:
1210:
1205:
1204:
1194:
1188:
1184:
1180:
1176:
1172:
1167:
1166:
1154:
1150:
1145:
1139:, March 2020.
1138:
1134:
1129:
1121:
1117:
1111:
1104:
1099:
1084:
1080:
1074:
1072:
1064:
1060:
1055:
1053:
1045:
1041:
1036:
1029:
1019:
1012:
997:
993:
986:
971:
967:
960:
958:
956:
947:
946:makeuseof.com
943:
937:
935:
918:
914:
908:
901:
900:Balbaert 2018
896:
894:
892:
890:
888:
876:September 17,
872:
868:
862:
860:
858:
842:
838:
832:
824:
823:
818:
812:
808:
798:
795:
793:
790:
788:
785:
783:
780:
779:
775:
769:
764:
761:
750:
694:
648:
645:
643:
639:
616:
614:
604:
597:
593:
591:
587:
584:
581:
577:
574:
572:
568:
565:
562:
558:
554:
550:
547:
544:
540:
536:
532:
529:
525:
522:
519:
516:
513:
509:
506:
505:
504:
493:
490:
487:
483:
482:
481:
470:
467:
466:
465:
454:
451:
448:
445:
442:
439:
436:
435:
434:
432:
422:
420:
416:
412:
402:
400:
396:
392:
388:
374:
370:
368:
363:
361:
357:
353:
349:
348:cross-compile
345:
337:
333:
329:
325:
321:
318:
258:
255:
254:
253:
251:
247:
243:
239:
235:
231:
227:
222:
220:
216:
212:
208:
204:
196:
192:
188:
184:
180:
177:Influenced by
175:
171:
166:
158:
154:
150:
148:
144:
141:
137:
134:
132:
128:
125:
121:
117:
114:
112:
108:
104:
99:
94:
92:
88:
84:
80:
76:
72:
70:
66:
62:
60:
56:
53:
49:
45:
41:
38:
36:
32:
28:
23:
1558:Generational
1548:Alphabetical
1544:
1524:
1349:Visual Basic
1170:
1152:
1144:
1137:red-lang.org
1136:
1133:«DiaGrammar»
1128:
1119:
1110:
1098:
1086:. Retrieved
1082:
1063:red-lang.org
1062:
1043:
1035:
1027:
1021:. Retrieved
1011:
1001:February 21,
999:. Retrieved
995:
985:
973:. Retrieved
969:
945:
921:. Retrieved
916:
907:
874:. Retrieved
871:Studytonight
870:
846:February 21,
844:. Retrieved
840:
831:
820:
811:
692:
646:
635:
610:
607:Hello World!
600:
563:(hard-float)
549:Raspberry Pi
545:(soft-float)
502:
479:
463:
428:
408:
390:
384:
381:Introduction
364:
341:
319:
256:
249:
245:
223:
202:
201:
136:modified BSD
1553:Categorical
1240:Helpin' Red
1046:, May 2011.
588:: Android,
533:Linux-ARM:
510:: Windows,
476:Development
399:HTTP server
387:Netherlands
332:interpreter
304:"Hello
274:instead of
151:.red, .reds
1588:Categories
1418:JavaScript
1294:Comparison
1183:B07C5X8Q32
1153:redata.dev
1149:«SmartXML»
1088:17 January
1044:osnews.com
1023:2018-12-16
975:16 January
923:August 28,
803:References
704:factorial:
658:factorial:
354:under the
257:Red/System
246:Red/System
226:full stack
215:imperative
48:functional
44:imperative
1515:Smalltalk
996:Softpedia
492:Bootstrap
344:toolchain
163:.red-lang
69:Developer
1573:Category
1339:Assembly
1299:Timeline
1243:Archived
1120:OhioLINK
841:red-lang
746:See also
615:in Red:
405:Features
328:compiles
52:symbolic
35:Paradigm
1526:more...
1505:Scratch
1408:Haskell
1398:Fortran
1354:classic
1304:History
1083:YouTube
719:return:
701:/System
586:Android
567:FreeBSD
518:Windows
156:Website
131:License
120:Windows
96:0.6.5 (
1545:Lists:
1480:Python
1475:Prolog
1453:Pascal
1443:MATLAB
1428:Kotlin
1388:Erlang
1327:Simula
1230:GitHub
1189:
1181:
822:GitHub
728:either
676:either
642:32-bit
638:64-bit
576:Darwin
508:MS-DOS
433:2011:
310:"
298:printf
1520:Swift
1510:Shell
1423:Julia
1393:Forth
1383:COBOL
1344:BASIC
1322:ALGOL
623:print
590:ARMv5
561:armhf
557:ARMv5
553:Linux
543:armel
539:ARMv5
535:Linux
530:, x86
528:Linux
524:Linux
486:Rebol
425:Goals
411:Rebol
322:is a
211:Rebol
205:is a
191:Scala
183:Rebol
140:Boost
116:Linux
1495:Rust
1490:Ruby
1465:Perl
1433:Lisp
1413:Java
1359:.NET
1187:ISBN
1179:ASIN
1090:2023
1003:2024
977:2023
925:2015
878:2021
848:2024
707:func
661:func
611:The
580:OS X
419:DSLs
286:>
268:>
248:and
240:and
234:GUIs
232:and
230:DSLs
217:and
187:Lisp
165:.org
138:and
124:OS X
98:Beta
81:2011
1500:SQL
1470:PHP
1438:Lua
1373:C++
1334:APL
1317:Ada
1228:on
1226:Red
698:Red
652:Red
620:Red
596:x86
571:x86
512:x86
320:Red
313:);}
250:Red
203:Red
195:Lua
161:www
20:Red
1590::
1448:ML
1403:Go
1378:C#
1185:.
1177:.
1173:.
1151:,
1135:,
1118:.
1081:.
1070:^
1061:,
1051:^
1042:,
1026:.
994:.
968:.
954:^
944:.
933:^
915:.
886:^
869:.
856:^
839:.
819:.
725:][
673:][
578::
569::
559:,
555:,
551::
541:,
537:,
526::
401:.
362:.
307:\n
277:if
262:if
252:.
193:,
189:,
185:,
122:,
118:,
111:OS
50:,
46:,
42::
1485:R
1368:C
1275:e
1268:t
1261:v
1195:.
1155:.
1092:.
1005:.
979:.
927:.
902:.
880:.
850:.
825:.
740:]
737:0
734:=
731:x
713:x
710:[
688:]
685:0
682:=
679:x
667:x
664:[
488:2
316:.
301:(
295:{
292:)
289:y
283:x
280:(
271:y
265:x
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.