Ring
The Ring programming language 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
The language is simple, trying to be natural, encourage organization and comes with transparent and visual implementation. It comes with compact syntax and a group of features that enable the programmer to create natural interfaces and declarative domain-specific languages in a fraction of time. It is very small, fast and comes with smart garbage collector that puts the memory under the programmer control. It supports many programming paradigms, comes with useful and practical libraries. The language is designed for productivity and developing high quality solutions that can scale.
Designed for a Clear Goal
Applications programming language.
Productivity and developing high quality solutions that can scale.
Small and fast language that can be embedded in C/C++ projects.
Simple language that can be used in education and introducing Compiler/VM concepts.
General-Purpose language that can be used for creating domain-specific libraries, frameworks and tools.
Practical language designed for creating the next version of the Programming Without Coding Technology software.
Website : https://ring-lang.net
Tasks
- 100 doors
- 15 Puzzle Game
- 15 Puzzle Game in 3D
- 16 Puzzle Game
- 2048
- 21 Game
- 24 game
- A+B
- ABC Problem
- Abundant odd numbers
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Add a variable to a class instance at runtime
- Aliquot sequence classifications
- Almost prime
- Amb
- Anagrams
- Anagrams/Deranged anagrams
- Angle difference between two bearings
- Animate a pendulum
- Animation
- Anonymous recursion
- Anti-primes
- Apply a callback to an array
- Archimedean spiral
- Arithmetic-geometric mean
- Arithmetic/Integer
- Array concatenation
- Array length
- Arrays
- Assertions
- Associative array/Creation
- Associative array/Iteration
- Atomic updates
- Attractive numbers
- Audio frequency generator
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average
- Babbage problem
- Balanced brackets
- Barnsley fern
- Benford's law
- Best shuffle
- Binary digits
- Binary search
- Binary strings
- Bitwise operations
- Boolean values
- Box the compass
- Bresenham's Line Algorithm
- Brownian tree
- Bulls and cows
- Bulls and cows/Player
- CSV data manipulation
- CUSIP
- Caesar cipher
- Calculating the value of e
- Calendar
- Call a function
- Call an object method
- Carmichael 3 strong pseudoprimes
- Cartesian product of two or more lists
- Case-sensitivity of identifiers
- Casting out nines
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Chaos game
- Character codes
- Check input device is a terminal
- Check that file exists
- Cholesky decomposition
- Circles of given radius through two points
- Classes
- Closest-pair problem
- Closures/Value capture
- Collections
- Color of a screen pixel
- Colour bars/Display
- Colour pinstripe/Display
- Combinations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Compare a list of strings
- Compile-time calculation
- Compound data type
- Conditional structures
- Constrained random points on a circle
- Continued fraction
- Convert seconds to compound duration
- Copy a string
- Count in factors
- Count in octal
- Count occurrences of a substring
- Count the coins
- Create a file
- Create a file on magnetic tape
- Create a two-dimensional array at runtime
- Create an HTML table
- Create an object/Native demonstration
- Cumulative standard deviation
- Currency
- Damm algorithm
- Date format
- Date manipulation
- Day of the week
- Decision tables
- Delete a file
- Department Numbers
- Detect division by zero
- Determine if a string is numeric
- Determine if only one instance is running
- Digital root
- Digital root/Multiplicative digital root
- Dijkstra's algorithm
- Dinesman's multiple-dwelling problem
- Display a linear combination
- Documentation
- Dot product
- Doubly-linked list/Definition
- Doubly-linked list/Traversal
- Draw a cuboid
- Draw a pixel
- Draw pixel 2
- Dutch national flag problem
- Dynamic variable names
- Eertree
- Egyptian division
- Emirp primes
- Empty directory
- Empty program
- Empty string
- Enforced immutability
- Entropy
- Enumerations
- Environment variables
- Equilibrium index
- Ethiopian multiplication
- Euler method
- Euler's sum of powers conjecture
- Evaluate binomial coefficients
- Even or odd
- Evolutionary algorithm
- Exceptions
- Execute HQ9+
- Execute a system command
- Exponentiation operator
- Exponentiation order
- Extend your language
- Extensible prime generator
- Extract file extension
- FASTA format
- Factorial
- Factors of a Mersenne number
- Factors of an integer
- Farey sequence
- Feigenbaum constant calculation
- Fibonacci n-step number sequences
- Fibonacci sequence
- Fibonacci word
- Find common directory path
- Find duplicate files
- Find limit of recursion
- Find palindromic numbers in both binary and ternary bases
- Find the last Sunday of each month
- Find the missing permutation
- Five weekends
- FizzBuzz
- Flatten a list
- Flipping bits game
- Flow-control structures
- Floyd's triangle
- Forest fire
- Formatted numeric output
- Forward difference
- Four bit adder
- Four is magic
- Fractal tree
- Function composition
- Function definition
- Fusc sequence
- GUI component interaction
- GUI enabling/disabling of controls
- GUI/Maximum window dimensions
- Gamma function
- General FizzBuzz
- Generate lower case ASCII alphabet
- Generic swap
- Get system command output
- Globally replace text in several files
- Gray code
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Greyscale bars/Display
- Guess the number
- Guess the number/With feedback
- Guess the number/With feedback (player)
- HTTP
- HTTPS
- Hamming numbers
- Happy numbers
- Harshad or Niven series
- Hash from two arrays
- Hash join
- Haversine formula
- Hello world!
- Hello world/Graphical
- Hello world/Line printer
- Hello world/Newbie
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Hello world/Web server
- Here document
- Heronian triangles
- Hickerson series of almost integers
- Higher-order functions
- Hilbert curve
- Hofstadter Figure-Figure sequences
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Horizontal sundial calculations
- Horner's rule for polynomial evaluation
- I before E except after C
- IBAN
- Identity matrix
- Idiomatically determine all the lowercase and uppercase letters
- Include a file
- Increment a numerical string
- Inheritance/Multiple
- Inheritance/Single
- Input loop
- Input/Output for Lines of Text
- Input/Output for Pairs of Numbers
- Integer comparison
- Integer roots
- Integer sequence
- Interactive programming
- Introspection
- Iterated digits squaring
- Jaro distance
- Jensen's Device
- Jewels and Stones
- JortSort
- Josephus problem
- Julia set
- Kaprekar numbers
- Kernighans large earthquake problem
- Keyboard input/Flush the keyboard buffer
- Keyboard input/Keypress check
- Keyboard input/Obtain a Y or N response
- Keyboard macros
- Knapsack problem/0-1
- Knuth shuffle
- Koch curve
- Kronecker product
- LZW compression
- Langton's ant
- Largest int from concatenated ints
- Largest number divisible by its digits
- Last Friday of each month
- Last letter-first letter
- Leap year
- Least common multiple
- Left factorials
- Leonardo numbers
- Letter frequency
- Levenshtein distance
- List comprehensions
- List rooted trees
- Literals/Integer
- Literals/String
- Logical operations
- Longest Common Substring
- Longest common prefix
- Longest common subsequence
- Longest increasing subsequence
- Longest string challenge
- Look-and-say sequence
- Loop over multiple arrays simultaneously
- Loops/Break
- Loops/Continue
- Loops/Do-while
- Loops/Downward for
- Loops/For
- Loops/For with a specified step
- Loops/Foreach
- Loops/Increment loop index within loop body
- Loops/Infinite
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Lucas-Lehmer test
- Lucky and even lucky numbers
- Ludic numbers
- Luhn test of credit card numbers
- MAC Vendor Lookup
- MD5
- Mad Libs
- Magic 8-Ball
- Magic squares of odd order
- Make directory path
- Mandelbrot set
- Map range
- Mastermind
- Matrix multiplication
- Matrix transposition
- Maximum triangle path sum
- Memory allocation
- Menu
- Mersenne primes
- Metaprogramming
- Middle three digits
- Miller–Rabin primality test
- Modular inverse
- Modulinos
- Monads/List monad
- Monte Carlo methods
- Monty Hall problem
- Morse code
- Most frequent k chars distance
- Move-to-front algorithm
- Multi-dimensional array
- Multifactorial
- Multiplication tables
- Multisplit
- Munchausen numbers
- Munching squares
- Musical scale
- Mutual recursion
- N'th
- Narcissistic decimal number
- Nautical bell
- Negative base numbers
- Nested function
- Non-continuous subsequences
- Non-decimal radices/Convert
- Non-decimal radices/Input
- Non-decimal radices/Output
- Nth root
- Null object
- Number names
- Number reversal game
- Numerical integration
- Odd word problem
- Old Russian measure of length
- One of n lines in a file
- One-dimensional cellular automata
- OpenGL
- Operator precedence
- Order two numerical lists
- Ordered words
- Palindrome detection
- Pangram checker
- Partition an integer X into N primes
- Pascal matrix generation
- Pascal's triangle
- Password generator
- Pathological floating point problems
- Pentagram
- Perfect numbers
- Permutations
- Permutations with repetitions
- Permutations/Rank of a permutation
- Pernicious numbers
- Phrase reversals
- Pick random element
- Pig the dice game
- Pinstripe/Display
- Plasma effect
- Play recorded sounds
- Playing cards
- Plot coordinate pairs
- Polyspiral
- Population count
- Power set
- Price fraction
- Primality by trial division
- Prime decomposition
- Primorial numbers
- Probabilistic choice
- Program name
- Program termination
- Proper divisors
- Pythagoras tree
- Pythagorean quadruples
- Pythagorean triples
- Queue/Definition
- Quickselect algorithm
- Quine
- RPG Attributes Generator
- Ramsey's theorem
- Random number generator (device)
- Random number generator (included)
- Random numbers
- Range expansion
- Range extraction
- Rate counter
- Read a file character by character/UTF8
- Read a file line by line
- Read a specific line from a file
- Read entire file
- Real constants and functions
- Reduced row echelon form
- Reflection/Get source
- Reflection/List methods
- Regular expressions
- Remove duplicate elements
- Remove lines from a file
- Rename a file
- Rep-string
- Repeat
- Repeat a string
- Return multiple values
- Reverse a string
- Reverse the gender of a string
- Reverse words in a string
- Rock-paper-scissors
- Roman numerals/Decode
- Roman numerals/Encode
- Roots of a function
- Roots of a quadratic function
- Roots of unity
- Rosetta Code/Count examples
- Rosetta Code/Find unimplemented tasks
- Rot-13
- Run-length encoding
- Runge-Kutta method
- Runtime evaluation
- Runtime evaluation/In an environment
- SEDOLs
- SHA-1
- SHA-256
- Sailors, coconuts and a monkey problem
- Sattolo cycle
- Scope/Function names and labels
- Search a list
- Search a list of records
- Self-describing numbers
- Semiprime
- Semordnilap
- Send email
- Sequence of primes by trial division
- Sequence of primorial primes
- Sequence: smallest number greater than previous term with exactly n divisors
- Set
- Set consolidation
- Seven-sided dice from five-sided dice
- Shell one-liner
- Shoelace formula for polygonal area
- Short-circuit evaluation
- Shortest common supersequence
- Show Ascii table
- Show the epoch
- Sierpinski carpet
- Sierpinski triangle
- Sierpinski triangle/Graphical
- Sieve of Eratosthenes
- Simple windowed application
- Simulate input/Mouse
- Sleep
- Smarandache prime-digital sequence
- Sockets
- Sokoban
- Sort a list of object identifiers
- Sort an integer array
- Sort numbers lexicographically
- Sort stability
- Sort three variables
- Sort three variables
- Sort using a custom comparator
- Sorting Algorithms/Circle Sort
- Sorting algorithms/Bogosort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Cocktail sort
- Sorting algorithms/Comb sort
- Sorting algorithms/Counting sort
- Sorting algorithms/Cycle sort
- Sorting algorithms/Gnome sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Pancake sort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Selection sort
- Sorting algorithms/Shell sort
- Sorting algorithms/Stooge sort
- Sorting algorithms/Strand sort
- Soundex
- Spinning rod animation/Text
- Spiral matrix
- Split a character string based on change of character
- Spoof game
- Square but not cube
- Stack
- Stair-climbing puzzle
- Start from a main routine
- Statistics/Basic
- Stem-and-leaf plot
- Stern-Brocot sequence
- String append
- String case
- String comparison
- String concatenation
- String interpolation (included)
- String length
- String matching
- String prepend
- Strip a set of characters from a string
- Strip block comments
- Strip comments from a string
- Strip control codes and extended characters from a string
- Strip whitespace from a string/Top and tail
- Subset sum problem
- Substitution Cipher
- Substring
- Substring/Top and tail
- Sum and product of an array
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Sunflower fractal
- Symmetric difference
- System time
- Table creation
- Table creation/Postal addresses
- Taxicab numbers
- Temperature conversion
- Terminal control/Clear the screen
- Terminal control/Coloured text
- Terminal control/Cursor positioning
- Terminal control/Dimensions
- Terminal control/Display an extended character
- Terminal control/Hiding the cursor
- Terminal control/Inverse video
- Terminal control/Ringing the terminal bell
- Test a function
- Text between
- The Twelve Days of Christmas
- Thue-Morse
- Tic-tac-toe
- Time a function
- Tokenize a string
- Tokenize a string with escaping
- Top rank per group
- Topic variable
- Trabb Pardo–Knuth algorithm
- Trigonometric functions
- Truncatable primes
- Truncate a file
- Two Sum
- Type detection
- Ulam spiral (for primes)
- Unbias a random generator
- Undefined values
- Unicode variable names
- Validate International Securities Identification Number
- Vampire number
- Van der Corput sequence
- Variable size/Get
- Variables
- Variadic function
- Vector
- Vector products
- Verify distribution uniformity/Naive
- Vibrating rectangles
- Video display modes
- Vigenère cipher
- Walk a directory/Non-recursively
- Walk a directory/Recursively
- Window creation
- Window management
- Word break problem
- Word frequency
- Word wrap
- Write entire file
- Write float arrays to a text file
- Zeckendorf number representation
- Zero to the zero power
- Zig-zag matrix