stringtranslate.com

Красный (язык программирования)

Red — это язык программирования, разработанный для преодоления ограничений языка программирования Rebol . [3] Red был представлен в 2011 году Ненадом Ракочевичем, [4] и является как императивным , так и функциональным языком программирования. Его синтаксис и общее использование совпадают с синтаксисом и общим использованием интерпретируемого языка Rebol. [5]

Выбор реализации Red направлен на создание языка программирования полного стека : [4] [6] Red может использоваться для программирования крайне высокого уровня ( DSL и GUI ), а также для программирования низкого уровня ( операционные системы и драйверы устройств ). Ключевым моментом подхода является то, что язык состоит из двух частей: Red/System и Red . [7]

Red стремится оставаться независимым от любого другого набора инструментов ; он сам генерирует код. [3] Поэтому можно кросс-компилировать [6] программы Red с любой поддерживаемой платформы на любую другую с помощью переключателя командной строки. И Red, и Red/System распространяются как программное обеспечение с открытым исходным кодом по измененной лицензии BSD . Библиотека времени выполнения распространяется по более либеральной лицензии Boost Software License .

Начиная с версии 0.6.4 Red включает в себя сборщик мусора «Simple GC». [9]

Архитектурная схема Red Language

Введение

Red был представлен в Нидерландах в феврале 2011 года на конференции Rebol & Boron [10] его автором Ненадом Ракочевичем. В сентябре 2011 года язык программирования Red был представлен более широкой аудитории во время Дня свободы программного обеспечения 2011. [11] [12] Ракочевич — давний разработчик Rebol, известный как создатель HTTP-сервера Cheyenne . [13]

Функции

Синтаксис и семантика Red очень близки к Rebol . [4] [14] Как и Rebol, он активно поддерживает метапрограммирование и предметно-ориентированные языки ( DSL ) и поэтому является высокоэффективным инструментом для диалектизации (создания встроенных DSL). Red включает диалект под названием Red/System, язык уровня C, который предоставляет возможности системного программирования. [7] Red легко интегрируется с другими инструментами и языками в виде DLL (libRed) и очень легкий (около 1 МБ). Он также может кросс-компилироваться для различных платформ (см. раздел «Кросс-компиляция» ниже) и создавать пакеты для платформ, которым они требуются (например, .APK на Android). [7] Red также включает полностью реактивную кросс-платформенную систему GUI, основанную на базовом движке реактивного потока данных, диалект 2D-рисования, сопоставимый с SVG, поддержку макросов во время компиляции и выполнения и более 40 стандартных типов данных.

Цели

Ниже приведен список целей Реда, представленный в День свободы программного обеспечения 2011 года: [11] [12]

Коммерческое применение

В настоящее время на Red разрабатываются следующие коммерческие приложения:

Разработка

Разработку Red планируется осуществить в два этапа:

  1. Начальная фаза: компиляторы Red и Red/System, написанные на Rebol 2
  2. Фаза начальной загрузки : компиляторы Red и Red/System, дополненные компилятором Red JIT, все написано на Red

Кросс-компиляция

В настоящее время Red поддерживает следующие цели кросс-компиляции: [4]

(Примечание: в настоящее время приложения Red являются 32-битными, но в будущем планируется переход на 64-битную версию. [4] )

Привет, мир!

Программа «Hello, World!» в красном:

Красный  [ Название:  "Простой скрипт Hello World" ] напечатайте  "Hello, World!"

Пример факториала

ВАЖНО: Это примеры синтаксиса. Пока Red не получит поддержку 64-битной архитектуры , пример целого числа очень быстро переполнит 32-битное целое число. Изменение на `float!` позволит продвинуться дальше, но они просто показывают синтаксис языка.

Ниже приведен пример факториала в красном цвете:

Красный  [ Название:  «Факториальный скрипт» ]  ; Примечание: Название необязательно.factorial:  func  [ x  [ integer! ]  ; Указание типа аргумента в Red необязательно ][ либо  x  =  0  [ 1 ][ x  *  factorial  x  -  1 ] ]

Ниже приведен тот же пример факториала в Red/System (в этом очень простом случае исходный код очень похож на версию Red):

Красный /Система  [ Название:  "Факториальный скрипт" ]factorial:  func  [ x  [ integer! ]  ; Это обязательно в Red/System return:  [ integer! ]  ; Это обязательно в Red/System ][ либо  x  =  0  [ 1 ][ x  *  factorial  x  -  1 ] ]

Смотрите также

Ссылки

  1. ^ "Создатель красного". GitHub .
  2. ^ "Red's changelog". red-lang . Получено 21 февраля 2024 г. .
  3. ^ abc "Начало работы с программированием GUI с использованием Red Language". Studytonight . Получено 17 сентября 2021 г. .
  4. ^ abcde Балберт 2018.
  5. ^ "Интервью с Ненадом Ракочевичем о Red, языке программирования, вдохновленном Rebol". Not a Monad Tutorial . 28 августа 2015 г. Получено 28 августа 2015 г.
  6. ^ ab "6 необычных и революционных языков программирования для изучения в 2023 году". makeuseof.com . 18 октября 2023 г.
  7. ^ abc Лукас, Матис (21 июля 2023 г.). «Red: императивный и функциональный язык программирования, который также является языком «полной батареи». Developpez.com . Получено 16 января 2023 г. .
  8. ^ Sasu, Alexandru (22 ноября 2018 г.). «Обзор Red». Softpedia . Получено 21 февраля 2024 г.
  9. ^ lucindamichele. "0.6.4 Simple GC and Pure Red GUI Console" . Получено 2018-12-16 . Основная функция 0.6.4 — это то, что мы называем Simple GC (Garbage Collector). Более продвинутый GC планируется в будущем
  10. ^ «Новый язык программирования Red получает бэкэнд Syllable», osnews.com , май 2011 г.
  11. ^ ab « Red Programming Language: Red на Дне свободы программного обеспечения 2011», red-lang.org , 14 сентября 2011 г.
  12. ^ ab "Software Freedom Day 2011: Red programming language, a new REBOL dialect". YouTube . 16 сентября 2011 г. . Получено 17 января 2023 г. .
  13. ^ « Что такое Шайенн? » Последнее упоминание: ноябрь 2017 г.
  14. ^ «Архитектура динамического картирования». OhioLINK . Декабрь 2021 г.
  15. ^ «DiaGrammar», red-lang.org , март 2020 г.
  16. ^ «SmartXML», redata.dev .

Дальнейшее чтение

Внешние ссылки