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)

Project Samples

Project Activity

See All Activity >

License

MIT License

Follow Ring

Ring Web Site

Other Useful Business Software
AI-powered service management for IT and enterprise teams Icon
AI-powered service management for IT and enterprise teams

Enterprise-grade ITSM, for every business

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.
Try it Free
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
4
0
0
0
0
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5

User Reviews

  • good luck !
  • Interesting alternative to Lua.
  • New and interesting. Thanks.
  • it was much useful for my project
Read more reviews >

Additional Project Details

Operating Systems

Android, Linux, Mac, Windows

Languages

English

Intended Audience

Advanced End Users, Developers, Education, Information Technology, Science/Research

User Interface

Allegro, Console/Terminal, Qt, Web-based

Programming Language

C, C++

Database Environment

MySQL, ODBC

Related Categories

C++ Software Development Software, C++ Compilers, C++ Virtual Machine Software, C++ Code Editors, C++ Programming Languages, C Software Development Software, C Compilers, C Virtual Machine Software, C Code Editors, C Programming Languages

Registered

2016-01-21