The Ring Programming Language

By Author: msfclipper
The Ring is an Innovative and practical general-purpose multi-paradigm scripting language that can be embedded in C/C++ projects, extended using C/C++ code and/or used as standalone language.

The supported programming paradigms are Imperative, Procedural, Object-Oriented, Functional, Meta programming, Declarative programming using nested structures, and Natural programming.

The language is portable (Windows, Linux, Mac OS X, Android, etc.) and can be used to create Console, GUI, Web, Games and Mobile applications.

The language is designed to be Simple, Small, Flexible and Fast. Its Dynamic Language (Dynamic Typing and Weakly Typed) that compile the source code to byte code then execute it by the Ring Virtual Machine, which is integrated with the Ring Compiler in one program.

The first version of the language (around 100,000 lines of C/C++/Ring code) is released on January 25th, 2016.

Source Code : https://github.com/ring-lang/ring

Feature

  • Free Open Source (MIT License)
  • Interpreter - Hybrid Implementation (Compiler+VM)
  • Declarative programming on the top of Object-Oriented programming
  • No explicit end for statements (No ; or ENTER is required)
  • The compiler + The Virtual Machine are 15,000 lines of C code
  • The other 85,000 lines of code are related to 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 & Mac OS X, 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
  • Comes with code generator (Written in Ring) to quickly wrap C/C++ Libraries
  • Create 2D Games (Using the Allegro Library)
  • Create GUI Applications for Desktop and Mobile (Using the Qt Framework)

JILRuntime/JewelScript

A general purpose, object-oriented script language that compiles into code for a register based virtual machine. The language is quite similar to object-oriented high-level languages like Java and C#. The library is entirely self-sufficient and ANSI C compliant. It's main purpose is to be embedded .........

Similar: 17%

Supernova programming language

Modern scripting language and the first one that presents the concept of programming with direct fiction description using a clear subset of pure human language. Supernova started as a research and example about what we can do using PWCT ( Programming Without Coding Technology - http://doublesvso.........

Similar: 16%

Programming Without Coding Technology

PWCT is not a Wizard for creating your application in 1 2 3 steps. PWCT is a general-purpose visual programming tool designed for novice and expert programmers. A novice programmer can use PWCT to learn programming concepts like Data Structure, Control Structure, Programming Paradigm,..etc. An.........

Similar: 13%

Wave Framework

Wave is a PHP micro-framework that is built loosely following model-view-control architecture and factory method design pattern. It is made for web services, websites and info-systems and is built to support a native API architecture, caching, user control and smart resource management. Wave is a co.........

Similar: 12%

Lioness (Languages Interop Framework)

Framework for making Windows applications that are one .exe file in AutoHotKey_L,C++,C#, VB.NET,Java,Groovy,Common Lisp,Nemerle,Ruby,Python,PHP,Lua,Tcl,Perl,Jint,S#,WSH VBScript,HTML/JavaScript/CSS,COM, PowerShell without compiling . For .NET 4....

Similar: 12%

SAGA GIS

SAGA - System for Automated Geoscientific Analyses - is a Geographic Information System (GIS) software with immense capabilities for geodata processing and analysis. SAGA is programmed in the object oriented C++ language and supports the implementation of new functions with a very effective Applicat.........

Similar: 12%

ObjectBuilder2

ObjectBuilder is a C++ code generation CASE tool (CASE, code generation, refactoring, documentation generation). It lets you create, manipulate and navigate classes, class relations, class members and class methods at a high level of abstraction. ObjectBuilder dramatically simplify work with C++ pr.........

Similar: 11%

N-Tier Windows Forms Framework

Updated to work with Visual Studio 2012. The N-Tier Framework for Windows Forms is designed to put the developer in control with tools & APIs for the rapid development of database applications in c#. NTier is designed to leverage developers' skills and familiarity with Visual Studio and Windows Fo.........

Similar: 11%

Urho3D

Urho3D is a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D....

Similar: 9%

ZEsarUX

It's a ZX Machines Emulator for Unix, including: -ZX Spectrum -ZX-Uno -ZX80 -ZX81 -Z88 -Jupiter Ace -Chloe 140 SE, Chloe 280 SE -Prism -Timex TS 2068 -Amstrad CPC 464 It has been voted as the best Spectrum emulator on 2015 by web retrogamingtotal.com: https://twitter.com/retrogamertotal/status/678.........

Similar: 7%