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