Красный (язык программирования)
![]() | |
Парадигма | Мультипарадигмальность : императивная , функциональная , символическая. |
---|---|
Разработано | Ненад Ракочевич [1] |
Разработчик | Ненад Ракочевич |
Впервые появился | 2011 |
Стабильная версия | |
ТЫ | Linux , Windows , OS X |
Лицензия | модифицированные BSD и Boost |
Расширения имен файлов | .красный, .красный |
Веб-сайт | www |
Под влиянием | |
Ребол , Лисп , Скала , Луа |
Red — это язык программирования , созданный для преодоления ограничений языка программирования Rebol . [3] Орден был учрежден в 2011 году Ненадом Ракочевичем. [4] и является одновременно императивным и функциональным языком программирования. Его синтаксис и общее использование совпадают с синтаксисом интерпретируемого языка Rebol. [5]
Варианты реализации Red направлены на создание полнофункционального языка программирования: [4] [6] Красный можно использовать для программирования чрезвычайно высокого уровня ( DSL и GUI ), а также программирования низкого уровня ( операционные системы и драйверы устройств ). Ключом к этому подходу является то, что язык состоит из двух частей: Red/System и Red . [7]
- Red/System похож на C, но упакован в лексическую структуру Rebol — например, можно было бы написать
if x > y [print "Hello"]
вместоif (x > y) {printf("Hello\n");}
. - Red — гомоиконный язык , способный к метапрограммированию с семантикой, подобной Rebol. [3] [8] Библиотека времени выполнения Red написана на Red/System и использует гибридный подход: она компилирует то, что может вывести статически, а в противном случае использует встроенный интерпретатор . Дорожная карта проекта включает в себя оперативный компилятор для промежуточных случаев, но он еще не реализован.
Red стремится оставаться независимым от любой другой цепочки инструментов ; он выполняет собственную генерацию кода. [3] Таким образом, возможна кросс-компиляция [6] Red программ с любой поддерживаемой платформы на любую другую через переключатель командной строки. И Red, и Red/System распространяются как программное обеспечение с открытым исходным кодом по модифицированной лицензии BSD . Библиотека времени выполнения распространяется по более либеральной лицензии Boost Software License .
Начиная с версии 0.6.4 Red включает сборщик мусора «Простой GC». [9]
Введение [ править ]
Красный был представлен в Нидерландах в феврале 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 также включает в себя полностью реактивную кроссплатформенную систему графического интерфейса, основанную на базовом механизме реактивного потока данных, диалекте 2D-рисования, сравнимом с SVG, поддержке макросов во время компиляции и выполнения, а также более 40 стандартных типов данных.
Цели [ править ]
Ниже приводится список целей Red, представленный в День свободы программного обеспечения 2011 года: [11] [12]
- Простота («Для написания кода не требуется IDE».)
- Компактность («Высокая выразительность максимизирует производительность»).
- Скорость («Если она слишком медленная, она не может быть достаточно универсальной».)
- Будьте «зелеными», занимайте мало места («Потому что ресурсы не безграничны»).
- Вездесущность («Распространение повсюду»).
- Портативность. Написание единожды запускается везде («Это меньше всего ожидается от языка программирования».)
- Гибкость («Не лучший вариант, но хорошо подходит для любой задачи!»)
Коммерческие приложения [ править ]
В настоящее время на Red разрабатываются следующие коммерческие приложения:
Развитие [ править ]
Развитие Red планируется проводить в два этапа:
- Начальная фаза: компиляторы Red и Red/System, написанные на Rebol 2.
- Фаза начальной загрузки : компиляторы Red и Red/System дополнены JIT-компилятором Red, написанным на Red.
Кросс-компиляция [ править ]
В настоящее время Red поддерживает следующие цели кросс-компиляции: [4]
- MS-DOS : Windows, x86 , консольные (и графические) приложения.
- Windows : Windows, x86, приложения с графическим интерфейсом.
- Линукс : Линукс , x86
- Linux-ARM: Linux , ARMv5 , Armel (мягкое плавающее число)
- Raspberry Pi : Linux , ARMv5 , Armhf (жестко плавающий)
- FreeBSD : x86
- Дарвин : OS X Intel, консольные (и графические) приложения.
- Андроид : Андроид, ARMv5
- Android-x86: Android, x86
(Примечание: в настоящее время приложения Red являются 32-битными, но в будущем планируется перейти на 64-битные. [4] )
Привет, мир! [ редактировать ]
Программа «Привет, мир!» программа красным цветом:
Красный [ Название: «Простой сценарий hello world» ]
print «Hello, World!»
Пример факториала [ править ]
ВАЖНО: Они предназначены в качестве примеров синтаксиса. Пока у Red нет поддержки 64-битных чисел переполнит 32-битное , пример целого числа очень быстро целое число. Изменение этого параметра на «float!» пойдет дальше, но это просто для того, чтобы показать синтаксис языка.
Ниже приведен пример факториала в Red:
Красный [ Название: "Факториальный скрипт" ] ; Примечание. Название не является обязательным.
факториал: func [
x [ целое число! ] ; Указывать тип аргумента в Red необязательно
][
либо x = 0 [ 1 ][ x * факториал x - 1 ]
]
Ниже приведен тот же пример факториала в Red/System (в этом очень простом случае исходный код очень похож на версию Red):
Red /System [ Название: «Скрипт факториала» ]
факториал: func [
x [ целое число! ] ; Это обязательно в
возврате Red/System: [ целое число! ] ; Это обязательно в Red/System
][
либо x = 0 [ 1 ][ x * факториал x - 1 ]
]
См. также [ править ]
- Сравнение языков программирования
- История языков программирования
- Список языков программирования
- Список языков программирования по типам
Ссылки [ править ]
- ^ «Создатель красного» . Гитхаб .
- ^ «Журнал изменений Рэда» . красный язык . Проверено 21 февраля 2024 г.
- ^ Перейти обратно: а б с «Начало программирования графического интерфейса с использованием красного языка» . Учеба сегодня вечером . Проверено 17 сентября 2021 г.
- ^ Перейти обратно: а б с д Это Бальберт 2018 .
- ^ «Интервью с Ненадом Ракочевичем о Red, языке программирования, вдохновленном Rebol» . Не учебник по монадам . 28 августа 2015 года . Проверено 28 августа 2015 г.
- ^ Перейти обратно: а б «6 необычных и революционных языков программирования, которые стоит выучить в 2023 году» . makeuseof.com . 18 октября 2023 г.
- ^ Перейти обратно: а б с Лукас, Матис (21 июля 2023 г.). «Красный: императивный и функциональный язык программирования, который также является языком с «полной батареей» . Developpez.com . Проверено 16 января 2023 г.
- ^ Сасу, Александру (22 ноября 2018 г.). «Обзор Красного» . Софтпедия . Проверено 21 февраля 2024 г.
- ^ Люсиндамишель. «0.6.4 Простой сборщик мусора и консоль с графическим интерфейсом Pure Red» . Проверено 16 декабря 2018 г.
Основной особенностью версии 0.6.4 является то, что мы называем Simple GC (сборщик мусора). В будущем планируется создать более совершенный GC.
- ^ «Новый красный язык программирования получает серверную часть Syllable» , osnews.com , май 2011 г.
- ^ Перейти обратно: а б «Красный язык программирования: красный на Дне свободы программного обеспечения 2011» , red-lang.org , 14 сентября 2011 г.
- ^ Перейти обратно: а б «День свободы программного обеспечения 2011: Красный язык программирования, новый диалект REBOL» . YouTube . Проверено 17 января 2023 г.
- ^ «Что такое Шайенн? » Последнее обращение: ноябрь 2017 г.
- ^ «Архитектура динамического картографирования» . ОгайоССЫЛКА . Декабрь 2021.
- ^ «DiaGrammar» , red-lang.org , март 2020.
- ^ «SmartXML» , redata.dev .
Дальнейшее чтение [ править ]
- Бальберт, Иво (май 2018 г.). Изучите красный – основы красного . Пакт Паблишинг . АСИН B07C5X8Q32 . ISBN 978-1789130706 .
Внешние ссылки [ править ]
![](http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
- Языки программирования
- Языки системного программирования
- Языки программирования с расширяемым синтаксисом
- Специализированные языки программирования
- Языки программирования высокого уровня
- Гомоиконические языки программирования
- Процедурные языки программирования
- Функциональные языки
- Кроссплатформенное бесплатное программное обеспечение
- Кроссплатформенное программное обеспечение
- Бесплатные компиляторы и интерпретаторы
- Программное обеспечение, использующее лицензию BSD
- Программное обеспечение, использующее лицензию Boost
- Языки программирования, созданные в 2011 году.
- программное обеспечение 2011 года