Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Ring/Lessons/Features

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Features The Ring language comes with the next features .. tip:: One of the main goals behind the first release is creating a useful language ready for production! 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) A small language (Around 100,000 lines of code) * The compiler + The Virtual Machine are 15,000 lines of C code * The other 85,000 lines of code are related to libraries! * 10,000 lines of C code * 50,000 lines of C++ code * 25,000 lines of Ring code Written 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) Comments (One line & Multi-lines) 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 by 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) * HTTP Get * HTTP Post * File upload * Cookies * URL Encode * HTML Templates * HTML Special Characters * HTML Generation using Functions * HTML Generation using Classes * CRUD Example (using MVC) * 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 * Used to Support Allegro by creating RingAllegro * Used to Support Qt by creating RingQt Create 2D Games (Using the Allegro Library) Create GUI Applications for Desktop and Mobile (Using the Qt Framework) Ring programming language