~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 1A7BA7D436CF23758725FEA91C656C0A__1716393360 ✰
Заголовок документа оригинал.:
✰ Ring (programming language) - Wikipedia ✰
Заголовок документа перевод.:
✰ Кольцо (язык программирования) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Ring_(programming_language) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/1a/0a/1a7ba7d436cf23758725fea91c656c0a.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/1a/0a/1a7ba7d436cf23758725fea91c656c0a__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 10:05:19 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 22 May 2024, at 18:56 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Кольцо (язык программирования) — Википедия Jump to content

Кольцо (язык программирования)

Из Википедии, бесплатной энциклопедии
Кольцо
Парадигма Мультипарадигмальность : объектно-ориентированное , императивное , функциональное , процедурное , рефлексивное , декларативное , программирование на естественном языке.
Разработано Махмуд Самир Файед [1]
Разработчик Команда разработчиков Ring
Впервые появился 25 января 2016 г .; 8 лет назад ( 25 января 2016 )
Стабильная версия
1.20 [2]  Отредактируйте это в Викиданных/ 11 апреля 2024 г .; 2 месяца назад ( 11 апреля 2024 г. )
Дисциплина набора текста Динамический
Язык реализации С
ТЫ Windows , Linux и MacOS
Лицензия МОЯ лицензия
Расширения имен файлов .ring, .rh, .rform
Веб-сайт http://ring-lang.net
Под влиянием
Lua , Python , Ruby , C , C# , BASIC , QML , xBase , Supernova
Под влиянием
SimpleLang, [3] ДраконЛанг [4]

Ring — это динамически типизированный язык программирования общего назначения . Его можно встраивать в проекты C/C++, расширять с помощью кода C/C++ или использовать как отдельный язык. [5] Поддерживаемые парадигмы программирования : императивное , процедурное , объектно-ориентированное , функциональное , мета , декларативное с использованием вложенных структур и естественное программирование . [6] [7] Язык портативный ( Windows , Linux , macOS , Android , [8] Веб-сборка , [9] и т. д.) [10] и может использоваться для создания консольных , графических , веб- , игровых и мобильных приложений . [11] [12] [13] [14]

История [ править ]

Ring IDE (Блокнот Ring — Дизайнер форм)

В 2009 году Махмуд Самир Файед создал второстепенный предметно-ориентированный язык под названием Supernova, который фокусируется на создании пользовательского интерфейса (UI) и использует некоторые идеи, связанные с программированием на естественном языке . Затем он осознал необходимость нового языка, который был бы универсальным и мог бы повысить продуктивность создания естественного языка. Цель Ring — предложить язык, призванный помочь разработчику создавать естественные интерфейсы и декларативные DSL. [15] [16] [17] [18]

Цели [ править ]

PWCT 2.0 (Android) — в разработке с использованием Ring

Общие цели Ring: [19] [20]

  • Язык программирования приложений.
  • Производительность и разработка высококачественных решений, которые можно масштабировать.
  • Маленький и гибкий язык, который можно встраивать в проекты C/C++.
  • Простой язык, который можно использовать в обучении и ознакомлении с концепциями компилятора/VM.
  • Язык общего назначения, который можно использовать для создания специализированных библиотек, фреймворков и инструментов.
  • Практичный язык, предназначенный для создания следующей версии программного обеспечения « Программирование без технологии кодирования» . [21]

Примеры [ править ]

Различные стили написания исходного кода
Декларативное программирование (веб-разработка)
Программирование на естественном языке
Тестирование производительности управления TreeView с использованием RingQt

Программа «Привет, мир» [ править ]

Одна и та же программа может быть написана в разных стилях. Вот пример стандартного «Hello, World!» программу, используя четыре разных стиля.

Первый стиль:

см. «Привет, мир!»
 

Второй стиль:

поставьте "Привет, Мир!"
 

Третий стиль:

print("Привет, мир!")
 

Другой стиль: похож на xBase языки , такие как Clipper и Visual FoxPro.

?  "Привет, мир!"
 

Измените ключевые слова и операторы [ править ]

Ring языка поддерживает изменение ключевых слов и операторов .

Это можно сделать много раз в одном и том же исходном файле, и это полезно для

Перевести ключевые слова Ring на японский язык

ChangeRingKeyword См. ChangeRingOperator, который выдает букву + и новую строку = nl.
 Делать.  = :Да.

 Отправьте письмо «Привет, мир» и начните новую строку.

 ChangeRingKeyword Отправить письмо См. // восстановление ключевого слова ChangeRingOperator и + // восстановление оператора 

Перевести ключевые слова Ring на арабский

ChangeRingKeyword См. إطبع

 Песня «Привет, мир!»

 ChangeRingKeyword إطبع См.
 

Используйте стиль, похожий на язык программирования Pascal.

ChangeRingKeyword   func   function 
 ChangeRingKeyword см   .   write 
 Begin   =   :  Begin 

 function   main 
 Begin 
 write  (  "  Hello  ,   World  !"  )  ; 
  вернуть   0  ; 
  конец 

 ChangeRingKeyword   функции   func 
 ChangeRingKeyword   запись   см. 

[22] [23] [24]

Команда цикла [ править ]

Команда Loop может принимать целое число, чтобы применить семантику продолжения к внешним циклам. [25]

Цикл измененияRingKeyword продолжить
 количество = 2
 для х в 1:5
     для y = от 1 до 2
         если х = 3
             ?  "Собираюсь выполнить цикл, count = " + count
             продолжать считать
         хорошо
         ?  "x:" + x + ", y: " + y
     следующий
 следующий
 

Объектно-ориентированное программирование [ править ]

Ring поддерживает объектно-ориентированное программирование (классы, объекты, композиция, наследование, инкапсуляция и т. д.). [26]

новая точка { # Создайте новый объект из класса Point и получите доступ к объекту с помощью фигурных скобок
 x=10 y=20 z=30 # Устанавливаем атрибуты объекта
 print() # Вызов метода print()
 } # завершение доступа к объекту с помощью фигурных скобок
 точка класса # Определить класс
 xyz # Определить атрибуты (x,y,z)
 func print # Определить метод print()
 ?  x + nl + y + nl + z # Распечатать значения атрибутов (nl означает печать новой строки)
 

Классы In Ring можно определить во время выполнения с помощью функции Eval(). [27]

?  "Динамическое создание нового класса..."
 eval("класс DynamicClass a b")

 ?  «Печать экземпляра...»
 ?  новый динамическийкласс {a=1 b=2}
 

Реализация [ править ]

Компилятор и виртуальная машина [ править ]

Реализация кольцевой виртуальной машины с использованием PWCT — инструкции для виртуальной машины
Реализация кольцевой виртуальной машины с использованием PWCT — структура списка

Программы Ring не интерпретируются напрямую из текстового файла Ring, а компилируются в байт -код , который затем запускается на виртуальной машине Ring . Процесс компиляции обычно невидим для пользователя и выполняется во время выполнения , но его можно выполнить в автономном режиме, чтобы повысить производительность загрузки или уменьшить объем памяти, занимаемой средой хоста, исключив компилятор.

Компилятор программного обеспечения « и виртуальная машина разрабатываются с использованием визуального программирования с помощью Программирование без технологии кодирования» , после чего C. генерируется код

Расширения [ править ]

Онлайн-конструктор форм (WebAssembly) — использование RingQt
Реализация Sokoban с использованием Ring Game Engine для 2D-игр
Использование Qt3D через RingQt

Ниже приведены расширения, которые можно использовать сразу после установки полной установочной версии (размер файла около 280 МБ для Ring 1.12). Поскольку они официально предоставляются и поддерживаются на стороне Ring, пользователей не беспокоят зависимости библиотек, которые могут вызвать проблемы на других языках, и есть опасения, что их нельзя будет использовать внезапно, даже если произойдут деструктивные изменения в спецификации языка.

Расширения реализованы примерно в 500 000 строк кода C и C++ .

[28]

Библиотеки [ править ]

Ring поставляется с библиотеками, написанными на самом Ring, например, библиотеками, связанными с веб-разработкой и разработкой игр.

Название библиотеки Описание
Стандартная библиотека Общие классы и функции.
Библиотека графического интерфейса Классы и функции для создания приложений с графическим интерфейсом
Библиотека объектов Классы и функции для создания приложений с графическим интерфейсом с использованием шаблона проектирования MVC.
Веб-библиотека Простая платформа для разработки веб-приложений с использованием шаблона проектирования MVC.
Игровой движок Поддержка разработки 2D-игр для настольных компьютеров и мобильных устройств с использованием декларативного программирования на основе Allegro и LibSDL.
Природная библиотека Библиотека программирования общего назначения на естественном языке.
Библиотека трассировки Библиотека для отладки приложений.
Тип Подсказки Библиотека для добавления подсказок типов к функциям.
Большая библиотека чисел Поддержка арифметических операций с огромными числами.
Библиотека Фокс-Ринг Содержит функции, аналогичные Visual FoxPro.
Библиотека Зеролиб Содержит классы, индекс которых начинается с 0, а не с 1.

[29] [30]

Приложения [ править ]

Игра Gold Magic 800 — использование RingAllegro и RingOpenGL
Онлайн-игра «Отелло» (WebAssembly) — использование RingQt

Ring распространяется с более чем 60 приложениями, написанными на этом языке.

Некоторые из этих приложений

[31] [32]

Инструменты [ править ]

Запуск игры Тетрис с помощью диспетчера пакетов Ring

Ring распространяется со стандартной IDE, которая включает в себя следующие инструменты:

Ring также распространяется с расширениями для многих редакторов кода, таких как Emacs , Notepad++ , Geany , Atom , Sublime Text 2 и Visual Studio Code .

Документация [ править ]

Ring распространяется вместе с документацией, написанной с использованием Sphinx . Также доступен японский перевод документации. [33]

Прием [ править ]

Популярность [ править ]

Популярность Ring быстро росла и падала, согласно индексу сообщества программистов TIOBE . В феврале 2018 года Ринг впервые ворвался в топ-50 (45-я позиция). [34] По состоянию на октябрь 2020 года Ring занимает 93-е место в индексе TIOBE. [35] Ring включен GitHub в список активно разрабатываемых языков программирования. [36]

Критика [ править ]

Критики Ring указали на некоторые особенности Ring, которые не распространены в широко используемых языках программирования. [37]

Индекс списка начинается с 1 вместо 0 [ править ]

В Ring индекс первого элемента в списках и первого символа в строках равен 1.

cName = "Кольцо"
 ?  cName[1] # напечатать R
 aList = ["Один","Два","Три"]
 ?  aList[1] # напечатайте один
 

Неявное преобразование типов [ править ]

Язык может автоматически преобразовывать числа и строки. [38]

/*
 ** Правила:
 ** <НОМЕР> + <СТРОКА> --> <НОМЕР>
 ** <СТРОКА> + <НОМЕР> --> <СТРОКА>
 */

 x = 10 # x — число
 y = "20" # y — строка
 nSum = x + y # nSum — число (y будет преобразовано в число)
 cMsg = "Sum = " + nSum # cMsg — строка (nSum будет преобразована в строку)
 

См. также [ править ]

Ссылки [ править ]

  1. ^ М. Аюни (29 июля 2020 г.). «Диалог с Махмудом Файедом» (PDF) . Спрингер .
  2. ^ «Выпущено 1.20» . 11 апреля 2024 г. Проверено 12 апреля 2024 г.
  3. ^ Азиз Адевале. «Простой язык программирования» .
  4. ^ Аавеш Джилани. «Язык программирования Дракон» .
  5. ^ Доктор Рангараджан Кришнамурти (7 августа 2021 г.). «Первое знакомство с кольцевым языком программирования» . rangakrish.com. Архивировано из оригинала 9 августа 2021 г.
  6. ^ Омар Селим (январь 2018 г.). «Обзор языка программирования Ring» (PDF) . Журнал БИМАрабия. Архивировано из оригинала 17 ноября 2023 г. Проверено 24 марта 2024 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  7. ^ Ахмед Тартур (январь 2020 г.). «Ваш путь к программированию (Арабская книга, страницы 56–57) поговорим о Ring» (PDF) . Котобна .
  8. ^ Бернхард Лауэр (14 августа 2018 г.). «Кольцо: гибкое, простое, быстрое» . Дотнетпро .
  9. ^ Пол Крилл (24 августа 2020 г.). «Обновление языка звонков ориентировано на WebAssembly» . Инфомир .
  10. ^ Ганем, Мохамед (2021). Разработка программного обеспечения Poet с использованием языка Ring (PDF) . MetaBook (Египет – Мансура). ISBN  978-977-6928-38-1 .
  11. ^ Начало кольцевого программирования – от новичка до профессионала | Мансур Аюни | Апресс .
  12. ^ Хани Салах (11 января 2016 г.). «Ринг: новый язык программирования» . youm7.com . ты7 .
  13. ^ Ахмед Мохаммед Хасан. «Кольцо: язык программирования, разработанный арабом» . muslims-res.com . Проверено 28 сентября 2020 г.
  14. ^ Абедалла Салехани. «Книга о языке программирования Ring» . muslims-res.com . Проверено 28 сентября 2020 г.
  15. ^ Команда Ринг (сентябрь 2021 г.). «Язык звонка — часто задаваемые вопросы (FAQ)» . Команда Ринг.
  16. ^ Файед (апрель 2010 г.). «Язык программирования Supernova» . Код проекта .
  17. ^ Омния (декабрь 2011 г.). «Сверхновой язык египетского программиста» . Юм7 .
  18. ^ Команда Softpedia (23 октября 2021 г.). «Обзор Кольца 1.16» . Софтпедия .
  19. ^ Навин Верма (14 августа 2018 г.). «Кольцевой язык программирования: что вам нужно знать?» . Середина .
  20. ^ Монес Хавас (29 мая 2018 г.). «Прогресс в разработке PWCT 2.0 с использованием Ring» . youm7.com . ты7 .
  21. ^ Файед, Махмуд С.; Аль-Куриши, Мухаммед; Аламри, Атиф; Хоссейн, М. Анвар; Аль-Дарайсе, Ахмад А. (октябрь 2020 г.). «PWCT: новый язык визуального программирования общего назначения для поддержки повсеместной разработки приложений». Транзакции CCF для всеобъемлющих вычислений и взаимодействия . 2 (3): 164–177. дои : 10.1007/s42486-020-00038-y . S2CID   225395711 .
  22. ^ Рубин Лю (28 декабря 2017 г.). «Различные стили написания программы Hello World на языке программирования Ring» . codeproject.com . Код проекта .
  23. ^ Рошан Али (4 июня 2018 г.). «Учебник по кольцевому программированию» . YouTube .
  24. ^ «Начало работы — третий стиль — документация по Ring 1.19» .
  25. ^ Доктор Рангараджан Кришнамурти (21 августа 2021 г.). « Команда «Loop» в кольцевом языке программирования» . rangakrish.com. Архивировано из оригинала 23 марта 2023 г.
  26. ^ «Объектно-ориентированное программирование (ООП) — документация Ring 1.16» .
  27. ^ Доктор Рангараджан Кришнамурти (4 сентября 2021 г.). «Кольцевой язык: динамическое поведение классов и объектов» . rangakrish.com. Архивировано из оригинала 29 мая 2023 г.
  28. ^ Мажди Собейн (2 мая 2017 г.). «Головоломка с квадратами с использованием RingAllegro» . codeproject.com . Код проекта .
  29. ^ Файед (11 августа 2017 г.). «Использование библиотеки программирования на естественном языке (NLPL) в кольцевом языке программирования» . codeproject.com . Код проекта .
  30. ^ Файед (12 октября 2016 г.). «Программирование на естественном языке на кольцевом языке программирования» . codeproject.com . Код проекта .
  31. ^ Разработчики с открытым исходным кодом (15 июня 2019 г.). «Приложения, написанные в Ring» . Команда Ринг.
  32. ^ Компания Эткан (25 сентября 2018 г.). «Игра Gold Magic 800 от компании Etqan» . Steam (программное обеспечение) .
  33. ^ «Добро пожаловать в руководство по эксплуатации Ring! — Руководство по использованию языка программирования Ring 1.16» . Архивировано из оригинала 30 октября 2021 г. Проверено 30 октября 2021 г. .
  34. ^ «Индекс TIOBE | TIOBE — компания по обеспечению качества программного обеспечения» . www.tiobe.com . Архивировано из оригинала 21 февраля 2018 года . Проверено 28 февраля 2022 г.
  35. ^ Эмма Уайт (6 октября 2020 г.). «100 лучших языков программирования» . БайресДев . Проверено 6 октября 2020 г.
  36. ^ «Создавайте программное обеспечение лучше вместе» . Гитхаб .
  37. ^ Циклум (12 декабря 2017 г.). «Новые языки программирования – шумиха или реальность?» . ciklum.com . Циклум . Архивировано из оригинала 7 декабря 2017 года . Проверено 1 февраля 2024 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  38. ^ «Переменные — документация Ring 1.16» .

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 1A7BA7D436CF23758725FEA91C656C0A__1716393360
URL1:https://en.wikipedia.org/wiki/Ring_(programming_language)
Заголовок, (Title) документа по адресу, URL1:
Ring (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)