Retour au classement

ring-lang/ring

Cring-lang.github.io

A simple, lightweight, flexible, embeddable, portable and multi-paradigm dynamic programming language for developing applications, tools, and domain-specific languages

programming-languagecompilervirtual-machineringlanguagering-programming-languageimperative-programming-languageproceduralobject-orientedfunctional-programmingdeclarative-languagenatural-language
Croissance des étoiles
Étoiles
1.5k
Forks
434
Croissance hebdomadaire
Issues
0
5001k
mars 2016août 2019févr. 2023juil. 2026
README

Ring

💍Ring Programming Language

📦Simple and flexible dynamic programming language for applications development

📖Contents:

📜Welcome to Ring

Ring is a practical general-purpose multi-paradigm dynamic programming language for developing applications, tools, and domain-specific languages.

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, Lightweight, Flexible and Embeddable.

🎉Get Excited

Ring comes with better support for Natural Language Programming and Declarative Programming.

The language support these paradigms with new practical techniques on top of Object-Oriented Programming and Functional Programming. No need to know anything about (Compilers and Parsing).

You get the language constructs ready for use to create domain-specific languages in a fraction of time.

🔋Batteries Included

Ring comes with many high quality bindings for popular libraries

ScreenShot

⚙️Practical

Many of the Ring libraries (StdLib, WebLib, Natural Library, Games Engine, etc.) and the Ring IDE (Ring Notepad, Form Designer, etc.) are written in the Ring language itself. Ring is ready for use in production and increases the developers productivity.

🎨Custom Styles And Modern Programming Paradigms

Using Ring you will feel that the language is yours! A lot of modern programming paradigms are ready for use in production and using Natural Language Programming you can quickly integrate natural interfaces to your programs.

Also, you can start your software development by writing natural descriptions, then adding the implementation later.

🖥️GUI Applications Development And RAD Tools

Many developers reported that using Ring we can develop many GUI applications in a few hours. Ring comes with Rapid Application Development (RAD) tools that we can use to quickly develop GUI applications using the MVC design pattern. Also, using the same source code we can distribute our applications for Desktop, Web, and Mobile platforms.

ScreenShot

🎮First Class Support For Game Development

We believe in Games as a nice way to encourage people to learn to program. Ring comes with many game programming libraries in the standard library. Ring provides native support for Allegro, LibSDL, RayLib, OpenGL, FreeGLUT, Tilengine and Qt3D libraries. Also, Ring comes with a simple game engine for 2D game development using Declarative Programming.

ScreenShot

🌐WebAssembly (Front-End Web Development)

Using Ring we can quickly develop web applications using WebAssembly (Binary format that allows sand-boxed executable code in web pages. This format is nearly as fast as native machine code and is now supported by all major web browsers)

ScreenShot

🖧Back-End Web Development

Using Ring we can quickly develop web applications using the MVC design pattern. We can easily use HTML templates with embedded Ring code. Also, we can generate HTML code from Ring programs using Declarative Programming.

ScreenShot

📱Mobile Development

Using Ring we can distribute our applications for mobile platforms (Android, iOS, etc.)

ScreenShot

🛠️Building Tools (Command Line)

Using Ring we can whip up a CLI tool quickly and distribute it with ease. The Ring Package Manager is an example of a powerful tool that we developed using Ring in a few hours. We recorded the development time (21 hours of development includes explaining each step)

ScreenShot

🏗️Implementation

🔍Transparent Implementation

Ring comes with transparent implementation. We can know what is happening in each compiler stage and what is going on during the run-time by the Virtual Machine

Example:

ring helloworld.ring -tokens -rules -ic -norun

🖌️Visual Implementation

The Ring programming language is designed using the PWCT visual programming tool.

We designed the Ring compiler and VM using CPWCT, which generates ANSI C code.

Using PWCT, we have full control over the generated code, ensuring it is identical to hand‑written C.

♻️Smart Memory Management System

Ring utilizes a deterministic, safe, and flexible scope-based memory management system that incorporates escape analysis and optional reference counting with cycle detection.

Avoid memory problems:-

Invalid Memory Access
Memory leaks
Uninitialized Memory Access
Dangling pointer

🔓No Global Interpreter (VM) Lock - No GIL

When we use threads in Ring applications, We don't have a global interpreter (VM) lock (No GIL)

So threads can work in parallel and execute Ring instructions at the same time

This is better for threads and concurrency (More Faster!)

🚀Fast Enough For Many Applications

Ring is designed to be a simple, lightweight, flexible and embeddable language in the first place, but also it is fast enough for many applications.

Also, when we need more speed we can use C/C++ extensions!

🔧Building from source code

We provide instructions for building on the next platforms:-

📚Publications

📜License

The Ring programming language is distributed under the MIT License.

Dépôts similaires
golang/go

The Go programming language

GoGo ModulesBSD 3-Clause "New" or "Revised" Licenseprogramming-languagelanguage
go.dev
135.3k19.3k
JetBrains/kotlin

The Kotlin Programming Language.

Kotlinkotlinprogramming-language
kotlinlang.org
53.2k6.4k
charlax/professional-programming

A collection of learning resources for curious software engineers

PythonPyPIMIT Licenseread-articlesprogrammer
51.3k4k
JuliaLang/julia

The Julia Programming Language

JuliaMIT Licensejulia-languagejulia
julialang.org
48.9k5.9k
LeCoupa/awesome-cheatsheets

👩‍💻👨‍💻 Awesome cheatsheets for popular programming languages, frameworks and development tools. They include everything you should know in one single file.

JavaScriptnpmMIT Licensecheatsheetsjavascript
lecoupa.github.io/awesome-cheatsheets/
46.2k6.7k
vlang/v

Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io

VMIT Licenseprogramming-languagelanguage
37.7k2.3k
carbon-language/carbon-lang

Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)

C++Otherprogramming-languagecarbon-lang
docs.carbon-lang.dev
33.8k1.6k
modular/modular

The Modular Platform (includes MAX & Mojo)

MojoOtherailanguage
docs.modular.com
26.6k2.9k
argotorg/solidity

Solidity, the Smart Contract Programming Language

C++GNU General Public License v3.0cppethereum
soliditylang.org
25.7k6.1k
ethereum/solidity

Solidity, the Smart Contract Programming Language

C++GNU General Public License v3.0cppethereum
soliditylang.org
24k6k
modular/max

The MAX Platform (includes Mojo)

MojoOtherailanguage
docs.modular.com/max/
23.8k2.6k
ruby/ruby

The Ruby Programming Language

RubyRubyGemsOtherrubyc
ruby-lang.org
23.7k5.6k