Diferentes estilos para escribir el código fuente.Programación declarativa (desarrollo web)Programación en lenguaje naturalPrueba del rendimiento del control TreeView con RingQt
programa hola mundo
El mismo programa se puede escribir usando diferentes estilos. A continuación se muestra un ejemplo del estándar "¡Hola, mundo!" programa usando cuatro estilos diferentes.
Función ChangeRingKeyword func ChangeRingKeyword ver escribir comenzar = : comenzarfunción principal comenzar a escribir ( " ¡Hola , mundo !" ) ; devolver 0 ; finFunción ChangeRingKeyword func ChangeRingKeyword escritura ver
[22] [23] [24]
Comando de bucle
El comando Bucle puede tomar un número entero para aplicar la semántica de continuar para encerrar bucles externos [25]
El bucle changeRingKeyword continúacontar = 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 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() # Llama al método print()} # fin del acceso al objeto usando llavespunto de clase # Definir la clasexyz # Definir los atributos (x,y,z)func print # Definir el método print()? x + nl + y + nl + z # Imprime los valores de los atributos (nl significa imprimir una nueva línea)
Las clases In Ring se pueden definir en tiempo de ejecución usando la función Eval() [27]
? "Creando una nueva clase dinámicamente..."eval("clase Clase Dinámica a b")? "Imprimiendo la instancia..."? nueva clase dinámica {a=1 b=2}
Implementación
Compilador y máquina virtual.
Implementación de Ring VM usando PWCT - Instrucciones de máquina virtualImplementación de Ring VM usando PWCT - Estructura de lista
Los programas Ring no se interpretan directamente a partir del archivo textual Ring, sino que se compilan en un código de bytes , que luego se ejecuta en la máquina virtual Ring . El proceso de compilación suele ser 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 al excluir el compilador.
Diseñador de formularios en línea (WebAssembly): uso de RingQtImplementación de Sokoban usando Ring Game Engine para juegos 2DUsando Qt3D a través de RingQt
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 estos se proporcionan y mantienen oficialmente en el lado de Ring, a los usuarios no les molestan las dependencias de la biblioteca que pueden causar problemas en otros idiomas, y existe la preocupación de que no puedan usarse repentinamente incluso si hay cambios destructivos en las especificaciones 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 con Sphinx . También está disponible una traducción japonesa de la documentación. [33]
Recepción
Popularidad
Ring tuvo un rápido aumento 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ó por primera vez en el top 50 (posición 45). [34] En octubre de 2020, Ring ocupa la posición 93 en el índice TIOBE. [35] Ring figura 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 más utilizados. [37]
El idioma puede convertir automáticamente entre números y cadenas. [38]
/*** Normas:** <NÚMERO> + <CADE> --> <NÚMERO>** <CADE> + <NÚMERO> --> <CADE>*/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) . Saltador .
^ "Lanzado 1.20". 11 de abril de 2024 . Consultado el 12 de abril 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). "Revisión 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}}: Mantenimiento CS1: bot: estado de la URL original desconocido ( enlace )
^ Ahmed Tartour (enero de 2020). "Tu camino hacia la programación (Libro en árabe, páginas 56-57) habla sobre Ring" (PDF) . Kotobná.
^ Bernhard Lauer (14 de agosto de 2018). "Anillo: flexible, sencillo, rápido". Dotnetpro.
^ Paul Krill (24 de agosto de 2020). "La actualización del lenguaje de timbre se centra en WebAssembly". InfoMundo .
^ Ghanem, Mohamed (2021). Desarrollo de software Poet utilizando el lenguaje Ring (PDF) . MetaBook (Egipto - Mansoura). ISBN978-977-6928-38-1.
^ Programación inicial en timbre: de principiante a profesional | Mansour Aaiuni | Presione.
^ Hany Salah (11 de enero de 2016). "Ring: un nuevo lenguaje de programación". youm7.com . tu7 .
^ Ahmed Mohammed Hassan. "Ring: un lenguaje de programación desarrollado por árabe". musulmanes-res.com . Consultado el 28 de septiembre de 2020 .
^ Abedallah Salehani. "Un libro sobre el lenguaje de programación Ring". musulmanes-res.com . Consultado el 28 de septiembre de 2020 .
^ Equipo Ring (septiembre de 2021). "Lenguaje de timbre: preguntas frecuentes (FAQ)". Equipo de anillo.
^ Fayed (abril de 2010). "Lenguaje de programación de supernova". Proyecto de código .
^ Omnia (diciembre de 2011). "Lenguaje de supernova por programador egipcio". Tum7 .
^ Equipo de Softpedia (23 de octubre de 2021). "Revisión del anillo 1.16". Softpedia .
^ Naveen Verma (14 de agosto de 2018). "Lenguaje de programación en anillo: ¿Qué necesita saber?". Medio .
^ Mones Hawas (29 de mayo de 2018). "Avances en el desarrollo de PWCT 2.0 utilizando Ring". youm7.com . tu7 .
^ Fayed, Mahmoud S.; Al-Qurishi, Mahoma; Alamri, Atif; Hossain, M. Anwar; Al-Daraiseh, Ahmad A. (octubre de 2020). "PWCT: un novedoso lenguaje de programación visual de propósito general que respalda el desarrollo generalizado de aplicaciones". Transacciones CCF sobre interacción e informática generalizada . 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 . Proyecto de código .
^ Roshan Ali (4 de junio de 2018). "Tutorial de programación de anillos". YouTube .
^ "Primeros pasos: tercer estilo: documentación de Ring 1.19".
^ Dr. Rangarajan Krishnamoorthy (21 de agosto de 2021). "Comando " Bucle "en 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 timbre: 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 usando RingAllegro". codeproject.com . Proyecto de código .
^ Fayed (11 de agosto de 2017). "Uso de la biblioteca de programación en lenguaje natural (NLPL) en el lenguaje de programación Ring". codeproject.com . Proyecto de código .
^ Fayed (12 de octubre de 2016). "Programación en lenguaje natural en el lenguaje de programación en anillo". codeproject.com . Proyecto de código .
^ Desarrolladores de código abierto (15 de junio de 2019). "Aplicaciones escritas en Ring". Equipo de anillo.
^ Compañía Etqan (25 de septiembre de 2018). "Juego Gold Magic 800 de Etqan Company". Vapor (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). "Los 100 principales lenguajes de programación". BairesDev . Consultado el 6 de octubre de 2020 .
^ Ciklum (12 de diciembre de 2017). "Nuevos lenguajes de programación: ¿una exageración 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}}: Mantenimiento CS1: bot: estado de la URL original desconocido ( enlace )
^ "Variables: documentación de Ring 1.16".
Otras lecturas
Ghanem (2021) Desarrollo de software Poet utilizando el lenguaje Ring (libro árabe) , MetaBook (Egipto - Mansoura)