El mismo programa se puede escribir utilizando diferentes estilos. A continuación se muestra un ejemplo del programa estándar "¡Hola mundo!" que utiliza cuatro estilos diferentes.
ChangeRingKeyword func función ChangeRingKeyword ver escritura begin = : beginfunción principal comienza a escribir ( " Hola , mundo !" ) ; retorna 0 ; finFunción ChangeRingKeyword func ChangeRingKeyword escribir ver
[22] [23] [24]
Comando de bucle
El comando Loop puede tomar un entero para aplicar la semántica de continuación a los bucles externos circundantes [25]
changeRingKeyword bucle continuarcuenta = 2para x en 1:5 para y = 1 a 2 si x = 3 ? "A punto de ejecutar 'bucle', cuenta = " + cuenta continuar contando OK ? "x: " + x + ", y: " + y próximopróximo
Programación orientada a objetos
Ring admite la programación orientada a objetos (clases, objetos, composición, herencia, encapsulación, etc.) [26]
nuevo punto { # Crea un nuevo objeto a partir de la clase Punto y accede al objeto usando llavesx=10 y=20 z=30 # Establecer los atributos del objetoprint() # Llamar al método print()} # fin del acceso al objeto mediante llavespunto de clase # Define la clasexyz # Define los atributos (x,y,z)func print # Define el método print()? x + nl + y + nl + z # Imprimir los valores de los atributos (nl significa imprimir una nueva línea)
Las clases In Ring se pueden definir en tiempo de ejecución utilizando la función Eval() [27]
? "Creando una nueva clase dinámicamente..."eval("clase ClaseDinámica a b")? "Imprimiendo la instancia..."? nueva ClaseDinámica {a=1 b=2}
Implementación
Compilador y máquina virtual
Los programas Ring no se interpretan directamente a partir del archivo textual Ring, sino que se compilan en código de bytes , que luego se ejecuta en la máquina virtual Ring . El proceso de compilación normalmente es invisible para el usuario y se realiza en tiempo de ejecución , pero se puede realizar sin conexión para aumentar el rendimiento de carga o reducir la huella de memoria del entorno host omitiendo el compilador.
Las siguientes son extensiones que se pueden usar inmediatamente después de la instalación de la versión de instalación completa (con un tamaño de archivo de aproximadamente 280 MB para Ring 1.12). Dado que se proporcionan y mantienen oficialmente en el lado de Ring, los usuarios no se ven afectados por dependencias de bibliotecas que pueden causar problemas en otros idiomas, y existe la preocupación de que no se puedan usar de repente incluso si hay cambios destructivos en la especificación del idioma.
Las extensiones se implementan en aproximadamente 500.000 líneas de código C y C++ .
Ring se distribuye con documentación escrita en Sphinx . También está disponible una traducción al japonés de la documentación. [33]
Recepción
Popularidad
Ring tuvo un rápido ascenso y caída en popularidad según lo medido por el Índice de la Comunidad de Programación TIOBE . En febrero de 2018, Ring entró en el top 50 por primera vez (posición 45). [34] A octubre de 2020, Ring ocupa la posición 93 en el índice TIOBE. [35] Ring está incluido en GitHub en la lista de lenguajes de programación que se desarrollan activamente. [36]
Crítica
Los críticos de Ring señalaron algunas características de Ring que no son comunes en los lenguajes de programación ampliamente utilizados. [37]
El lenguaje puede convertir automáticamente entre números y cadenas. [38]
/*** Normas:** <NÚMERO> + <CADENA> --> <NÚMERO>** <CADENA> + <NÚMERO> --> <CADENA>*/x = 10 # x es un númeroy = "20" # y es una cadenanSum = x + y # nSum es un número (y se convertirá en un número)cMsg = "Sum = " + nSum # cMsg es una cadena (nSum se convertirá en una cadena)
^ M. Ayouni (29 de julio de 2020). "Un diálogo con Mahmoud Fayed" (PDF) . Springer .
^ "Publicado 1.21.2". 13 de septiembre de 2024. Consultado el 13 de septiembre de 2024 .
^ Azeez Adewale. "El lenguaje de programación simple".
^ Aavesh Jilani. "El lenguaje de programación Dragon".
^ Dr. Rangarajan Krishnamoorthy (7 de agosto de 2021). "Primer encuentro con el lenguaje de programación Ring". rangakrish.com. Archivado desde el original el 9 de agosto de 2021.
^ Omar Selim (enero de 2018). "Reseña del lenguaje de programación Ring" (PDF) . Revista BIMArabia. Archivado desde el original el 17 de noviembre de 2023. Consultado el 24 de marzo de 2024 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
^ Ahmed Tartour (enero de 2020). "Tu camino hacia la programación (Libro árabe, páginas 56-57) habla sobre Ring" (PDF) . Kotobna.
^ Bernhard Lauer (14 de agosto de 2018). «Ring: flexible, simple, rápido». Dotnetpro.
^ Paul Krill (24 de agosto de 2020). "La actualización del lenguaje Ring se centra en WebAssembly". InfoWorld .
^ Ghanem, Mohamed (2021). Desarrollo de software Poet con lenguaje Ring (PDF) . MetaBook (Egipto - Mansoura). ISBN978-977-6928-38-1.
^ Introducción a la programación en anillo: de principiante a profesional | Mansour Ayouni | Apress.
^ Hany Salah (11 de enero de 2016). "Ring: un nuevo lenguaje de programación". youm7.com . youm7 .
^ Ahmed Mohammed Hassan. "Ring: un lenguaje de programación desarrollado por árabes". muslims-res.com . Consultado el 28 de septiembre de 2020 .
^ Abedallah Salehani. "Un libro sobre el lenguaje de programación Ring". muslims-res.com . Consultado el 28 de septiembre de 2020 .
^ Ring Team (septiembre de 2021). "Lenguaje del ring: preguntas frecuentes (FAQ)". Ring Team.
^ Fayed (abril de 2010). "Lenguaje de programación Supernova". Proyecto Code .
^ Omnia (diciembre de 2011). "Lenguaje Supernova por programador egipcio". Youm7 .
^ Equipo de Softpedia (23 de octubre de 2021). «Revisión de Ring 1.16». Softpedia .
^ Naveen Verma (14 de agosto de 2018). "Lenguaje de programación Ring: ¿qué necesitas saber?". Medium .
^ Mones Hawas (29 de mayo de 2018). "Avances en el desarrollo de PWCT 2.0 utilizando Ring". youm7.com . youm7 .
^ Fayed, Mahmoud S.; Al-Qurishi, Muhammad; Alamri, Atif; Hossain, M. Anwar; Al-Daraiseh, Ahmad A. (octubre de 2020). "PWCT: un nuevo lenguaje de programación visual de propósito general en apoyo del desarrollo de aplicaciones generalizadas". CCF Transactions on Pervasive Computing and Interaction . 2 (3): 164–177. doi :10.1007/s42486-020-00038-y. S2CID 225395711.
^ Rubin Liu (28 de diciembre de 2017). «Diferentes estilos para escribir el programa Hello World en el lenguaje de programación Ring». codeproject.com . Code Project .
^ Roshan Ali (4 de junio de 2018). "Tutorial de programación de anillos". YouTube .
^ "Introducción - Documentación de Third Style — Ring 1.19".
^ Dr. Rangarajan Krishnamoorthy (21 de agosto de 2021). "Comando "Loop" en el lenguaje de programación Ring". rangakrish.com. Archivado desde el original el 23 de marzo de 2023.
^ "Programación Orientada a Objetos (POO) — Documentación de Ring 1.16".
^ Dr. Rangarajan Krishnamoorthy (4 de septiembre de 2021). "Lenguaje de anillo: comportamiento dinámico de clases y objetos". rangakrish.com. Archivado desde el original el 29 de mayo de 2023.
^ Majdi Sobain (2 de mayo de 2017). "Rompecabezas de cuadrados con RingAllegro". codeproject.com . Code Project .
^ Fayed (11 de agosto de 2017). "Uso de la biblioteca de programación de lenguaje natural (NLPL) en el lenguaje de programación Ring". codeproject.com . Code Project .
^ Fayed (12 de octubre de 2016). "Programación en lenguaje natural en el lenguaje de programación Ring". codeproject.com . Code Project .
^ Open Source Developers (15 de junio de 2019). "Aplicaciones escritas en Ring". Equipo Ring.
^ Etqan Company (25 de septiembre de 2018). «Juego Gold Magic 800 de Etqan Company». Steam (software) .
^ "ようこそ Anillo 取扱説明書へ! - プログラミング言語 Anillo 1.16 取扱説明書". Archivado desde el original el 30 de octubre de 2021 . Consultado el 30 de octubre de 2021 .
^ "Índice TIOBE | TIOBE - la empresa de calidad del software". www.tiobe.com . Archivado desde el original el 21 de febrero de 2018 . Consultado el 28 de febrero de 2022 .
^ Emma White (6 de octubre de 2020). «Top 100 Programming Languages». BairesDev . Consultado el 6 de octubre de 2020 .
^ "Desarrollemos mejor el software, juntos". GitHub .
^ Ciklum (12 de diciembre de 2017). «Nuevos lenguajes de programación: ¿una moda o una realidad?». ciklum.com . Ciklum . Archivado desde el original el 7 de diciembre de 2017 . Consultado el 1 de febrero de 2024 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
^ "Variables — Documentación de Ring 1.16".
Lectura adicional
Ghanem (2021) Desarrollo de software Poet utilizando el lenguaje Ring (Libro árabe) , MetaBook (Egipto - Mansoura)