The Ring is a practical general-purpose multi-paradigm language.
The supported programming paradigms are imperative, procedural, object-oriented, declarative using nested structures, functional, meta programming and natural programming.
The language is portable (MS-DOS, Windows, Linux, macOS, Android, WebAssembly, Microcontrollers, etc.) and can be used to create Console, GUI, Web, Games and Mobile applications.
The language is designed to be simple, small and flexible. Ring is distributed as a Free-Open Source project under the MIT License.
Features
- Free Open Source (MIT License)
- Hybrid Implementation (Compiler+VM)
- Declarative programming on the top of Object-Oriented programming
- No explicit end for statements (No ; or ENTER is required)
- Compiler + Virtual Machine
- Many libraries!
- Writen in ANSI C (The code is generated)
- Developed using Visual Programming (PWCT)
- Optional Printing for Tokens/Grammar/Byte-Code during execution
- Portable (Windows, Linux, macOS, Android, etc.)
- Comments (One line & Multi-line)
- Not Case-Sensitive
- Dynamic Typing
- Weakly typed
- Lexical Scoping (Global, Local & Object State)
- Default scope for variables inside functions (Local)
- Default scope for variables outside functions (global)
- Garbage Collector - Automatic Memory Management (Escape Analysis and Reference Counting)
- Structure Programming
- Rich control structures & Operators
- For in get item by reference not value, you can read/edit the item
- Use exit to go outside from more than one loop
- Procedures/Functions
- Main Function (optional)
- Call Function before the definition
- Recursion
- Multi-line literals
- Access (read/write) string letter by index
- The list index start from 1
- No keyword to end Functions/Classes/Packages
- Range operator ex: 1:10 and “a”:”z”
- First Class Variables, Lists, Objects and Functions
- Store/Copy Lists/Objects by value (Deep Copy)
- Pass Lists/Objects by reference
- Native Object-Oriented Support
- Encapsulation
- Setter/Getter (optional)
- private state (optional)
- Instantiation
- Polymorphism
- Composition
- Inheritance (Single Inheritance)
- Operator Overloading
- Packages
- using { } to access objects and use attributes/methods as variables/functions
- Reflection and Meta-programming
- Clear program structure (Statements then functions then packages & classes)
- Exception Handling
- Eval() to execute code during run-time
- 8-bit clean, work on binary data directly
- I/O commands
- Math functions
- String functions
- List functions
- File processing functions
- Database support (ODBC & MySQL)
- Security Functions (OpenSSL)
- Internet Functions (LibCurl)
- CGI Library (Written in Ring)
- CGI LIbrary - HTTP Get
- CGI LIbrary - HTTP Post
- CGI LIbrary - File upload
- CGI LIbrary - Cookies
- CGI LIbrary - URL Encode
- CGI LIbrary - Templates
- CGI LIbrary - HTML Special Characters
- CGI LIbrary - HTML Generation using Functions
- CGI LIbrary - HTML Generation using Classes
- CGI LIbrary - CRUD Example (using MVC)
- CGI Library - Users Example (Register, Login and Check)
- Extension using C/C++ (Simple API)
- Embedding the language in C/C++ programs
- Embedding Ring in Ring
- Comes with code generator (Written in Ring) to quickly wrap C/C++ Libraries
- Create Games (2D & 3D)
- RingOpenGL Extension
- RingFreeGLUT Extension
- RingAllegro Extension
- RingLibSDL Extension
- RingRayLib Extension
- RingTilengine Extension
- RingLibui (GUI Library) Extension
- RingThreads Extension
- RingSockets Extension
- Tracing & Debugger
- Type Hints
- Different Styles for coding
- Syntax Flexibility (Change language keywords & operators)
- Create GUI Applications for Desktop and Mobile
- RingQt Extension
- IDE (Code Editor, Form Designer and REPL)
- Ring2EXE (Distributing Applications)
- RingPM (Package Manager)
License
MIT LicenseFollow Ring
Other Useful Business Software
AI-powered service management for IT and enterprise teams
Give your IT, operations, and business teams the ability to deliver exceptional services—without the complexity. Maximize operational efficiency with refreshingly simple, AI-powered Freshservice.
Rate This Project
Login To Rate This Project
User Reviews
-
good luck !
-
Interesting alternative to Lua.
-
New and interesting. Thanks.
-
it was much useful for my project