Ring (programming language): Difference between revisions

Content deleted Content added
m Correct capitalization
m Modified a WikiLink so that the subject's full name is displayed instead of just his last name. This being the first mention of the language creator in the article it seems rude to only use his last name. Plus several grammar and wording improvements. No substantive content changes/additions/deletions.
Line 25:
==History==
[[File:Ringlang shot1.png|thumb|300px|Ring IDE (Ring Notepad - Form Designer)]]
In 2009, [[Mahmoud Samir Fayed|Fayed]] created a minor [[___domain-specific language]] called Supernova that focusfocuses on [[User interface|User interface (UI)]] creation and uses some ideas related to [[Natural-language programming|Natural Language Programming]], then he realized the need for a new language that areis [[General-purpose language|general-purpose]] and can increase the [[productivity]] of creating natural languageslanguage creation. Ring aims to offer a language focused on helping the developer with building natural interfaces and declarative DSLs.<ref name="Supernova1">{{cite web |url=https://ring-lang.github.io/doc1.16/faq.html |title=Ring Language - Frequently Asked Questions (FAQ) |author=Ring Team|date=September 2021 |publisher=Ring Team}}</ref><ref name="Supernova2">{{cite web |url=https://www.codeproject.com/Articles/66996/Supernova-Programming-Language |title=Supernova programming language |author=Fayed|date=April 2010 |publisher=[[Code Project]]}}</ref><ref name="Supernova3">{{cite web |url=https://www.youm7.com/story/2011/12/24/%D8%B4%D8%A7%D8%A8-%D9%85%D8%B5%D8%B1%D9%89-%D9%8A%D8%A8%D8%AA%D9%83%D8%B1-%D8%B3%D9%88%D8%A8%D8%B1-%D9%86%D9%88%D9%81%D8%A7-%D9%88%D8%AA%D9%82%D9%86%D9%8A%D8%A9-%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%AF%D9%88%D9%86-%D9%83%D9%88%D8%AF/562415 |title=Supernova language by Egyptian programmer|author=Omnia|date=December 2011 |publisher=[[Youm7]]}}</ref><ref name="Softpedia">{{cite web |url=https://www.softpedia.com/get/Programming/Coding-languages-Compilers/Fayed-Ring.shtml |title=Ring 1.16 review |author= Softpedia Team|date=23 October 2021 |publisher=[[Softpedia]]}}</ref>
 
* In January 25, 2016, Ring 1.0 was released.
Line 94:
===Change the Keywords and Operators===
 
'''Ring''' supportsupports changing the language [[Reserved word|keywords]] and [[Operator (computer programming)|operators]].
 
This could be done many times in the same source file, and is useful for
 
* Translating the keywords from English to other human languages ([[Non-English-based programming languages]])
* Customizing the language for usinguse theof a favorite style
* Porting [[Legacy code]] written in other languages
 
Line 165:
===Object Oriented Programming===
 
Ring supportsupports Object Oriented Programming (Classes, Objects, Composition, Inheritance, Encapsulation, etc.)<ref>{{Cite web|url=https://ring-lang.github.io/doc1.16/oop.html|title = Object Oriented Programming (OOP) — Ring 1.16 documentation}}</ref>
 
<pre>
Line 178:
</pre>
 
In Ring weclasses can definebe classesdefined at runtime using the Eval() function<ref name="rangakrish3">{{cite web |url=https://www.rangakrish.com/index.php/2021/09/04/ring-language-dynamic-behavior-of-classes-and-objects/ |title=Ring Language: Dynamic Behavior of Classes and Objects |author= Dr. Rangarajan Krishnamoorthy |date=4 September 2021 |publisher=rangakrish.com}}</ref>
 
<pre>
Line 194:
[[File:Ringlang shot10.jpg|thumb|300px|Ring VM implementation using PWCT - Virtual Machine Instructions]]
[[File:Ringlang shot11.jpg|thumb|300px|Ring VM implementation using PWCT - List Structure]]
Ring programs are not [[interpreted language|interpreted]] directly from the textual Ring file, but are [[compiler|compiled]] into [[bytecode]], which is then run on the Ring [[virtual machine]]. The compilation process is typically invisible to the user and is performed duringat [[Run time (program lifecycle phase)|run-time]], but it can be done offline in order to increase loading performance or reduce the memory footprint of the host environment by leaving out the compiler.
 
The [[Compiler]] and the [[Virtual Machine]] are designed using [[Visual programming language|Visual Programming]] through the [[PWCT|Programming Without Coding Technology]] software then the [[C Programming Language|C]] code is generated.