Парадигма | императивный , функциональный , символический |
---|---|
Разработано | Ненад Ракочевич |
Разработчик | Ненад Ракочевич |
Впервые появился | 2011 г. |
Стабильный выпуск | |
Операционные системы | Linux , Windows , OS X , слог |
Лицензия | модифицированные BSD и Boost |
Расширения имени файла | .red, .reds |
Интернет сайт | www |
Под влиянием | |
Ребол , Скала , Lua |
Red - это язык программирования, разработанный для преодоления ограничений языка программирования Rebol . Red был представлен в 2011 году Ненадом Ракочевичем и является одновременно императивным и функциональным языком программирования . Его синтаксис и общее использование совпадают с синтаксисом интерпретируемого языка Rebol.
Варианты реализации Red предназначены для создания полнофункционального языка программирования: Red может использоваться для программирования чрезвычайно высокого уровня ( DSL и GUI ), а также для программирования низкого уровня ( операционные системы и драйверы устройств ). Ключ к подходу состоит в том, что язык состоит из двух частей: Red / System и Red .
- Red / System похож на C, но упакован в лексическую структуру Rebol - например, вместо .
if x > y [print "Hello"]
if (x > y) {printf("Hello\n");}
- Красный - гомоиконный язык, способный к метапрограммированию, с семантикой, подобной языку Ребола. Библиотека времени выполнения Red написана на Red / System и использует гибридный подход: она компилирует то, что может выводить статически, а в противном случае использует встроенный интерпретатор . Дорожная карта проекта включает своевременный компилятор для промежуточных случаев, но это еще не реализовано.
Red стремится оставаться независимым от любого другого инструментария ; он сам генерирует код. Следовательно, можно кросс-компилировать программы Red с любой платформы, которую он поддерживает, на любую другую с помощью переключателя командной строки. И Red, и Red / System распространяются как программное обеспечение с открытым исходным кодом по модифицированной лицензии BSD . Библиотека времени выполнения распространяется по более разрешительной лицензии на программное обеспечение Boost .
Начиная с версии 0.6.4 Red включает сборщик мусора «Simple GC». [1]
Введение [ править ]
Красный был представлен в Нидерландах в феврале 2011 года на конференции Rebol & Boron [2] его автором Ненадом Ракочевичем. В сентябре 2011 года язык программирования Red был представлен более широкой аудитории во время Дня свободы программного обеспечения 2011 года. [3] Ракочевич - давний разработчик Rebol, известный как создатель HTTP-сервера Cheyenne . [4]
Особенности [ править ]
Синтаксис и семантика Red очень близки к Rebol . Как и Rebol, он поддерживает метапрограммирование и предметно-ориентированные языки ( DSL) и поэтому является высокоэффективным инструментом для диалектирования (создания встроенных DSL). Red включает диалект Red / System, язык C-уровня, который предоставляет средства системного программирования. Red легко интегрируется с другими инструментами и языками как DLL (libRed) и очень легкий (около 1 МБ). Он также может выполнять кросс-компиляцию для различных платформ (см. Раздел «Кросс-компиляция» ниже) и создавать пакеты для платформ, которым они необходимы (например, .APK на Android). Red также включает полностью реактивную кроссплатформенную систему графического интерфейса пользователя, основанную на базовом движке реактивного потока данных, диалекте 2D-рисования, сопоставимом с SVG, поддержку макросов времени компиляции и выполнения, а также более 40 стандартных типов данных.
Цели [ править ]
Ниже приводится список целей Red, представленных в День свободы программного обеспечения 2011 года:
- Простота («Для написания кода не требуется IDE»).
- Компактность («Высокая выразительность увеличивает продуктивность»).
- Скорость («Если слишком медленно, она не может быть достаточно универсальной».)
- Будьте «экологичными», занимайте мало места («Потому что ресурсы не безграничны»).
- Вездесущность («Распространение повсюду»).
- Переносимость, однократная запись, запускается везде («Этого меньше всего ожидать от языка программирования»).
- Гибкость («Не лучше, но подходит для любой задачи!»)
Развитие [ править ]
Разработка Red планируется в два этапа:
- Начальный этап: компиляторы Red и Red / System написаны на Rebol 2
- Фаза начальной загрузки : компиляторы Red и Red / System, дополненные JIT-компилятором Red, все написаны красным
Кросс-компиляция [ править ]
Red в настоящее время поддерживает следующие цели кросс-компиляции:
- MS-DOS : Windows, x86 , консольные (и графические) приложения
- Windows : Windows, x86, приложения с графическим интерфейсом
- Linux : Linux , x86
- Linux-ARM: Linux , ARMv5 , armel (мягкое плавание)
- Raspberry Pi : Linux , ARMv5 , armhf (жесткое плавание)
- FreeBSD : x86
- Дарвин : OS X Intel, консольные (и графические) приложения
- Слог : Syllable OS , x86
- Android : Android, ARMv5
- Android-x86: Android, x86
(Примечание: этот список будет увеличиваться со временем, поэтому его следует рассматривать как неполный.)
Привет, мир! [ редактировать ]
Красный [ Заголовок: "Простой скрипт hello world" ] print "Hello World!"
Факториальный пример [ править ]
ВАЖНО: они предназначены в качестве примеров синтаксиса. Пока Red не будет поддерживать 64-битную версию, целочисленный пример очень быстро переполнит 32-битное целое число. Изменение этого на `float!` Пойдет дальше, но это просто для того, чтобы показать синтаксис языка.
Ниже приведен факториальный пример в красном:
Красный [ Название: "Факториальный скрипт" ] ; Примечание. Заголовок указывать необязательно.факториал: func [ x [ целое! ] ; Указание типа аргумента красным цветом необязательно ] [ либо x = 0 [ 1 ] [ x * факториал x - 1 ] ]
Ниже приведен тот же пример факториала в Red / System (в этом очень простом случае исходный код очень похож на версию Red):
Красный / Системный [ Название: "Факториальный скрипт" ]факториал: func [ x [ целое! ] ; Это обязательно для Red / System return: [ integer! ] ; Это обязательно в Red / System ] [ либо x = 0 [ 1 ] [ x * факториал x - 1 ] ]
См. Также [ править ]
- Ребол
Ссылки [ править ]
- ^ a b lucindamichele. «0.6.4 Простая консоль GC и Pure Red GUI» . Проверено 16 декабря 2018 .
Основная функция 0.6.4 - это то, что мы называем Simple GC (сборщик мусора). В будущем планируется создать более продвинутый сборщик мусора.
- ^ «Новый красный язык программирования получает слоговую бэкэнд » , osnews.com , май 2011 г.
- ^ «Красный язык программирования: Красный в День свободы программного обеспечения 2011» , red-lang.org , 14 сентября 2011 г.
- ^ «Что такое Шайенн? » Последнее упоминание: ноябрь 2017 г.
Внешние ссылки [ править ]
Викискладе есть медиафайлы, связанные с красным (языком программирования) . |
- Официальный веб-сайт
- Красный язык программирования на GitHub
- Redprogramming.com
- красный на GitHub