SlideShare a Scribd company logo
Ring Documentation, Release 1.5.3
The next screen shot from the Web Development chapter
1.12. Samples in this book 15
Ring Documentation, Release 1.5.3
The next screen shots for simple 2D Games that we will present in the Game Engine Chapter.
Stars Fighter Game
Flappy Bird 3000 Game
1.12. Samples in this book 16
Ring Documentation, Release 1.5.3
Super Man 2016 Game
1.12. Samples in this book 17
Ring Documentation, Release 1.5.3
The next screen shot for the TicTacToe 3D Game
Screen Shot:
1.12. Samples in this book 18
Ring Documentation, Release 1.5.3
1.13 Innovative
The language comes with better support for Natural Language Programming and Declarative Programming. The inno-
vation comes in supporting these paradigms with new practical techniques on the top of Object-Oriented Programming
and Functional Programming. No need to know anything about (Compilers and Parsing). You get the language con-
structs ready for use to create domain-specific languages in a fraction of time.
Articles:-
• Natural Language Programming Library :
https://www.codeproject.com/Articles/1200766/Using-the-Natural-Language-Programming-Library-NLP
• Natural Language Programming :
https://www.codeproject.com/Articles/1138605/Natural-Language-Programming-in-the-Ring-Programmi
1.13. Innovative 19
Ring Documentation, Release 1.5.3
• Syntax Flexibility :
https://www.codeproject.com/Articles/1137388/Syntax-Flexibility-in-the-Ring-Programming-Languag
• The Ring Programming Language :
https://www.codeproject.com/Articles/1089887/The-Ring-Programming-Language
1.14 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 increase the
developers productivity.
Check the Form Designer source code : https://github.com/ring-lang/ring/tree/master/applications/formdesigner
1.14. Practical 20
Ring Documentation, Release 1.5.3
1.14. Practical 21
CHAPTER
TWO
INTRODUCTION
Welcome to the Ring programming language!
The Ring is an Innovative and practical general-purpose multi-paradigm 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.
In this chapter we are going to discuss the goals behind the language design and implementation.
2.1 Motivation
In Nov. 2011, I started to think about creating a new version of the Programming Without Coding Technology (PWCT)
software from scratch.
I was interested in creating multi-platform edition of the software beside adding support for Web & Mobile develop-
ment. Most of the PWCT source code was written in VFP and the software comes with a simple scripting language
for creating the components called (RPWI). The software contains components that support code generation in pro-
gramming languages like Harbour, C, Supernova & Python.
What I was looking for is a programming language that can be used to build the development environment, provides
multi-platform support, more productivity, better performance, can be used for components scripting & can be used
for developing different kinds of applications.
Instead of using a mix of programming languages, I decided to use one programming language for creating the devel-
opment environment, for components scripting & for creating the applications.
I looked at many programming languages like C, C++, Java, C#, Lua, PHP, Python & Ruby. I avoided using C or C++
directly because I want high-level of productivity more than the level provided by these languages, also a language
behind visual programming environment for novice programmers or professionals must be easy to use & productive.
22
Ring Documentation, Release 1.5.3
Java & C# are avoided for some reason too! I wanted to use a dynamic programming language and these languages are
static typing, Java is multi-platform, also C# through Mono, but the use of huge number of classes and forcing the use
of Object-Orientation, using a verbose language is not right for me. I need a small language, but fast and productive,
also I need better control on the Garbage Collector (GC), I need a better one that is designed for fast applications.
Lua is small and fast, but it’s avoided because I need more powerful language for large applications.
PHP is a Web programming language and it’s syntax is very similar to C, this leads to a language not general as I want
and not simple as I need to have.
Python & Ruby are more like what I need, but I need something more simple, smaller, faster & productive.
Python and Ruby are Case-Sensitive, the list index start counting from 0, you have to define the function before calling
it, Ruby usage of Object-Orientation and message passing is more than what I need and decrease performance, Python
syntax (indentation, using self, :, pass & _) is not good for my goals.
All of these languages are successful languages, and very good for their domains, but what I need is a different
language that comes with new ideas and intelligent implementation (Innovative, Ready, Simple, Small, Flexible and
Fast).
2.2 History
In Sept. 2013 I started the design and the implementation of the Ring programming language. After 21 months of
development, In May 2015 the language Compiler & Virtual Machine were ready for use!
After that I spent three months testing the language again, trying to discover any bug to fix, writing better tests, by
the end of August 2015, all know bugs were fixed, Writing many tests and testing automation helped a lot in getting a
stable product.
In September 12, 2015, most of the documentation was written. Before releasing the language I started the marketing
by writing a post in Arabic language about it to my facebook profile page asking for contributors interested in the
language idea after reading a short description, In the same day I got a lot of emails from developers and friends
interested to contribute!
Ring 1.0 is released on January 25, 2016
Ring 1.1 is released on October 6, 2016
Ring 1.2 is released on January 25, 2017
Ring 1.3 is released on May 15, 2017
Ring 1.4 is released on June 29, 2017
Ring 1.5 is released on August 21, 2017
2.3 Features
The Ring language comes with the next features
Tip: The language is ready for production!
• Free Open Source (MIT License)
• Hybrid Implementation (Compiler + Virtual Machine)
• Declarative programming on the top of Object-Oriented programming
2.2. History 23
Ring Documentation, Release 1.5.3
• Natural Language programming on the top of Object-Oriented programming
• Syntax Flexibility (You can change the language keywords and operators)
• Compact Syntax, No explicit end for statements (No ; or ENTER is required)
• Using braces { } we can access objects and use attributes/methods as variables/functions
• Transparent Implementation
• Visual Implementation - Developed using Visual Programming (PWCT)
• A small language
– The compiler + The Virtual Machine are 15,000 lines of C code
– The other 500,000 lines of code are related to libraries!
• Writen in ANSI C (The code is generated)
• 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
2.3. Features 24

More Related Content

PDF
The Ring programming language version 1.5.4 book - Part 5 of 185
PDF
The Ring programming language version 1.5.1 book - Part 4 of 180
PDF
The Ring programming language version 1.5.2 book - Part 5 of 181
PDF
The Ring programming language version 1.10 book - Part 6 of 212
PDF
The Ring programming language version 1.4.1 book - Part 2 of 31
PDF
The Ring programming language version 1.4 book - Part 2 of 30
PDF
The Ring programming language version 1.3 book - Part 4 of 88
PDF
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.3 book - Part 4 of 88
The Ring programming language version 1.6 book - Part 6 of 189

What's hot (20)

PDF
The Ring programming language version 1.7 book - Part 6 of 196
PDF
The Ring programming language version 1.2 book - Part 4 of 84
PPTX
Top 10 programming languages
PPT
Programming language
PDF
Build your own Language - Why and How?
PDF
Programing fundamentals with C++
PDF
The Ring programming language version 1.2 book - Part 77 of 84
PPTX
Programming Languages | Computer Science
PPT
Introduction Programming Languages
PPTX
Computer languages
PPTX
Programming lesson1
PPTX
Programming Languages used in AI
PPTX
Swift programming language
PPTX
Coding vs programming
PDF
Top programming Languages in software Industry companies
PPT
Programming paradigm and web programming
PPTX
Entrepreneur’s guide to programming
PPTX
Error hanadling in c programming presentation
PDF
Top Programming Language of 2018
PDF
The Ring programming language version 1.6 book - Part 5 of 189
The Ring programming language version 1.7 book - Part 6 of 196
The Ring programming language version 1.2 book - Part 4 of 84
Top 10 programming languages
Programming language
Build your own Language - Why and How?
Programing fundamentals with C++
The Ring programming language version 1.2 book - Part 77 of 84
Programming Languages | Computer Science
Introduction Programming Languages
Computer languages
Programming lesson1
Programming Languages used in AI
Swift programming language
Coding vs programming
Top programming Languages in software Industry companies
Programming paradigm and web programming
Entrepreneur’s guide to programming
Error hanadling in c programming presentation
Top Programming Language of 2018
The Ring programming language version 1.6 book - Part 5 of 189
Ad

Similar to The Ring programming language version 1.5.3 book - Part 5 of 184 (20)

PDF
The Ring programming language version 1.9 book - Part 6 of 210
PDF
The Ring programming language version 1.8 book - Part 6 of 202
PDF
The Ring programming language version 1.9 book - Part 97 of 210
PDF
The Ring programming language version 1.5.1 book - Part 173 of 180
PDF
The Ring programming language version 1.10 book - Part 99 of 212
PDF
The Ring programming language version 1.7 book - Part 89 of 196
PDF
The Ring programming language version 1.5.3 book - Part 186 of 194
PDF
The Ring programming language version 1.3 book - Part 81 of 88
PDF
The Ring programming language version 1.8 book - Part 4 of 202
PDF
The Ring programming language version 1.6 book - Part 181 of 189
PDF
The Ring programming language version 1.5.1 book - Part 5 of 180
PDF
The Ring programming language version 1.10 book - Part 7 of 212
PDF
The Ring programming language version 1.5.4 book - Part 6 of 185
PDF
The Ring programming language version 1.5.3 book - Part 6 of 184
PDF
The Ring programming language version 1.2 book - Part 84 of 84
PDF
The Ring programming language version 1.9 book - Part 7 of 210
PDF
The Ring programming language version 1.6 book - Part 7 of 189
PDF
The Ring programming language version 1.7 book - Part 4 of 196
PDF
The Ring programming language version 1.5.1 book - Part 13 of 180
PDF
The Ring programming language version 1.5.4 book - Part 177 of 185
The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.9 book - Part 97 of 210
The Ring programming language version 1.5.1 book - Part 173 of 180
The Ring programming language version 1.10 book - Part 99 of 212
The Ring programming language version 1.7 book - Part 89 of 196
The Ring programming language version 1.5.3 book - Part 186 of 194
The Ring programming language version 1.3 book - Part 81 of 88
The Ring programming language version 1.8 book - Part 4 of 202
The Ring programming language version 1.6 book - Part 181 of 189
The Ring programming language version 1.5.1 book - Part 5 of 180
The Ring programming language version 1.10 book - Part 7 of 212
The Ring programming language version 1.5.4 book - Part 6 of 185
The Ring programming language version 1.5.3 book - Part 6 of 184
The Ring programming language version 1.2 book - Part 84 of 84
The Ring programming language version 1.9 book - Part 7 of 210
The Ring programming language version 1.6 book - Part 7 of 189
The Ring programming language version 1.7 book - Part 4 of 196
The Ring programming language version 1.5.1 book - Part 13 of 180
The Ring programming language version 1.5.4 book - Part 177 of 185
Ad

More from Mahmoud Samir Fayed (20)

PDF
The Ring programming language version 1.10 book - Part 212 of 212
PDF
The Ring programming language version 1.10 book - Part 211 of 212
PDF
The Ring programming language version 1.10 book - Part 210 of 212
PDF
The Ring programming language version 1.10 book - Part 208 of 212
PDF
The Ring programming language version 1.10 book - Part 207 of 212
PDF
The Ring programming language version 1.10 book - Part 205 of 212
PDF
The Ring programming language version 1.10 book - Part 206 of 212
PDF
The Ring programming language version 1.10 book - Part 204 of 212
PDF
The Ring programming language version 1.10 book - Part 203 of 212
PDF
The Ring programming language version 1.10 book - Part 202 of 212
PDF
The Ring programming language version 1.10 book - Part 201 of 212
PDF
The Ring programming language version 1.10 book - Part 200 of 212
PDF
The Ring programming language version 1.10 book - Part 199 of 212
PDF
The Ring programming language version 1.10 book - Part 198 of 212
PDF
The Ring programming language version 1.10 book - Part 197 of 212
PDF
The Ring programming language version 1.10 book - Part 196 of 212
PDF
The Ring programming language version 1.10 book - Part 195 of 212
PDF
The Ring programming language version 1.10 book - Part 194 of 212
PDF
The Ring programming language version 1.10 book - Part 193 of 212
PDF
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 192 of 212

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Machine learning based COVID-19 study performance prediction
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Building Integrated photovoltaic BIPV_UPV.pdf
Spectral efficient network and resource selection model in 5G networks
NewMind AI Weekly Chronicles - August'25 Week I
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
Reach Out and Touch Someone: Haptics and Empathic Computing
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
“AI and Expert System Decision Support & Business Intelligence Systems”
Machine learning based COVID-19 study performance prediction
MYSQL Presentation for SQL database connectivity
Network Security Unit 5.pdf for BCA BBA.
MIND Revenue Release Quarter 2 2025 Press Release
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton

The Ring programming language version 1.5.3 book - Part 5 of 184

  • 1. Ring Documentation, Release 1.5.3 The next screen shot from the Web Development chapter 1.12. Samples in this book 15
  • 2. Ring Documentation, Release 1.5.3 The next screen shots for simple 2D Games that we will present in the Game Engine Chapter. Stars Fighter Game Flappy Bird 3000 Game 1.12. Samples in this book 16
  • 3. Ring Documentation, Release 1.5.3 Super Man 2016 Game 1.12. Samples in this book 17
  • 4. Ring Documentation, Release 1.5.3 The next screen shot for the TicTacToe 3D Game Screen Shot: 1.12. Samples in this book 18
  • 5. Ring Documentation, Release 1.5.3 1.13 Innovative The language comes with better support for Natural Language Programming and Declarative Programming. The inno- vation comes in supporting these paradigms with new practical techniques on the top of Object-Oriented Programming and Functional Programming. No need to know anything about (Compilers and Parsing). You get the language con- structs ready for use to create domain-specific languages in a fraction of time. Articles:- • Natural Language Programming Library : https://www.codeproject.com/Articles/1200766/Using-the-Natural-Language-Programming-Library-NLP • Natural Language Programming : https://www.codeproject.com/Articles/1138605/Natural-Language-Programming-in-the-Ring-Programmi 1.13. Innovative 19
  • 6. Ring Documentation, Release 1.5.3 • Syntax Flexibility : https://www.codeproject.com/Articles/1137388/Syntax-Flexibility-in-the-Ring-Programming-Languag • The Ring Programming Language : https://www.codeproject.com/Articles/1089887/The-Ring-Programming-Language 1.14 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 increase the developers productivity. Check the Form Designer source code : https://github.com/ring-lang/ring/tree/master/applications/formdesigner 1.14. Practical 20
  • 7. Ring Documentation, Release 1.5.3 1.14. Practical 21
  • 8. CHAPTER TWO INTRODUCTION Welcome to the Ring programming language! The Ring is an Innovative and practical general-purpose multi-paradigm 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. In this chapter we are going to discuss the goals behind the language design and implementation. 2.1 Motivation In Nov. 2011, I started to think about creating a new version of the Programming Without Coding Technology (PWCT) software from scratch. I was interested in creating multi-platform edition of the software beside adding support for Web & Mobile develop- ment. Most of the PWCT source code was written in VFP and the software comes with a simple scripting language for creating the components called (RPWI). The software contains components that support code generation in pro- gramming languages like Harbour, C, Supernova & Python. What I was looking for is a programming language that can be used to build the development environment, provides multi-platform support, more productivity, better performance, can be used for components scripting & can be used for developing different kinds of applications. Instead of using a mix of programming languages, I decided to use one programming language for creating the devel- opment environment, for components scripting & for creating the applications. I looked at many programming languages like C, C++, Java, C#, Lua, PHP, Python & Ruby. I avoided using C or C++ directly because I want high-level of productivity more than the level provided by these languages, also a language behind visual programming environment for novice programmers or professionals must be easy to use & productive. 22
  • 9. Ring Documentation, Release 1.5.3 Java & C# are avoided for some reason too! I wanted to use a dynamic programming language and these languages are static typing, Java is multi-platform, also C# through Mono, but the use of huge number of classes and forcing the use of Object-Orientation, using a verbose language is not right for me. I need a small language, but fast and productive, also I need better control on the Garbage Collector (GC), I need a better one that is designed for fast applications. Lua is small and fast, but it’s avoided because I need more powerful language for large applications. PHP is a Web programming language and it’s syntax is very similar to C, this leads to a language not general as I want and not simple as I need to have. Python & Ruby are more like what I need, but I need something more simple, smaller, faster & productive. Python and Ruby are Case-Sensitive, the list index start counting from 0, you have to define the function before calling it, Ruby usage of Object-Orientation and message passing is more than what I need and decrease performance, Python syntax (indentation, using self, :, pass & _) is not good for my goals. All of these languages are successful languages, and very good for their domains, but what I need is a different language that comes with new ideas and intelligent implementation (Innovative, Ready, Simple, Small, Flexible and Fast). 2.2 History In Sept. 2013 I started the design and the implementation of the Ring programming language. After 21 months of development, In May 2015 the language Compiler & Virtual Machine were ready for use! After that I spent three months testing the language again, trying to discover any bug to fix, writing better tests, by the end of August 2015, all know bugs were fixed, Writing many tests and testing automation helped a lot in getting a stable product. In September 12, 2015, most of the documentation was written. Before releasing the language I started the marketing by writing a post in Arabic language about it to my facebook profile page asking for contributors interested in the language idea after reading a short description, In the same day I got a lot of emails from developers and friends interested to contribute! Ring 1.0 is released on January 25, 2016 Ring 1.1 is released on October 6, 2016 Ring 1.2 is released on January 25, 2017 Ring 1.3 is released on May 15, 2017 Ring 1.4 is released on June 29, 2017 Ring 1.5 is released on August 21, 2017 2.3 Features The Ring language comes with the next features Tip: The language is ready for production! • Free Open Source (MIT License) • Hybrid Implementation (Compiler + Virtual Machine) • Declarative programming on the top of Object-Oriented programming 2.2. History 23
  • 10. Ring Documentation, Release 1.5.3 • Natural Language programming on the top of Object-Oriented programming • Syntax Flexibility (You can change the language keywords and operators) • Compact Syntax, No explicit end for statements (No ; or ENTER is required) • Using braces { } we can access objects and use attributes/methods as variables/functions • Transparent Implementation • Visual Implementation - Developed using Visual Programming (PWCT) • A small language – The compiler + The Virtual Machine are 15,000 lines of C code – The other 500,000 lines of code are related to libraries! • Writen in ANSI C (The code is generated) • 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 2.3. Features 24