Introduction

The Dragon Programming Language

Welcome to the Dragon programming language!

Dragon is an Innovative and practical general-purpose multi-paradigm language. The supported programming paradigms are Imperative, Object-Oriented, Functional, Declarative programming using nested structures, and Natural programming. The language is portable (Windows, Linux, macOS, etc.) and can be used to create Console and GUI. The language is designed to be Simple, Small, Flexible and Fast. Its Dynamic Language (Dynamic Typing and Weakly Typed) that interpret the source code to byte code then executes it.

In this chapter we are going to discuss the goals behind the language design and implementation.

Dragon and other languages

Dragon is an innovative programming language that comes with better support for Natural Language Programming and Declarative Programming. The innovation comes in supporting these paradigms with new practical techniques on the top of Object-Oriented Programming and Functional Programming.

Also Dragon is influenced by the next programming languages

  • Lua
  • Python
  • Ruby
  • Java
  • QML
  • Ring

History

In Oct. 2016 I started the design and the implementation of the Dragon programming language. After 15 months of development, In Jan 2018 the language Interpreter and environment were ready for use!

The first version of the language Dragon 1.0 was released in January 4th, 2018

Dragon 1.1 was released on March 6th, 2018

Dragon 1.2 was released on May 24th, 2018

Dragon 1.3 was released on August 14th, 2018

Dragon 1.4 was released on January 18th, 2019

Dragon 1.5 was released on April 25th, 2019

Dragon 1.6 was released on May 27th 2019

Dragon 1.7 was released on July 11th 2019

Dragon 1.8 was released on August 9th 2019

Dragon 1.9 was released on August 29th 2019

Dragon 1.9.1 was released on September 15th 2019

Dragon 1.9.2 was released on September 18th 2019

Dragon 1.9.3 was released on October 13th 2019

Dragon 1.9.4 was released on October 22nd 2019

Dragon 1.9.5 was released on February 20th 2020

Dragon 1.9.6 was released on February 28th 2020

Dragon 1.9.7 was released on April 28th 2020

Dragon 1.9.8 was released on February 28th 2021

Dragon Native 1.0 was released on August 22nd 2022

Features

The Dragon language comes with the next features

Tip

The language is ready for production!

  • Interpreter

  • Declarative programming on the top of Object-Oriented programming

  • No explicit end for statements (No ; or ENTER is required)

  • Portable (Windows, Linux & Mac OS X)

  • Comments (One line ,In-line & Multi-lines)

  • Dynamic Typing

  • Weakly typed

  • 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

  • No Main Function

  • Call Function before the definition

  • Recursion

  • Multi-line literals

  • Reflection and Meta-programming

  • Clear program structure (Statements then functions)

  • Exception Handling

  • I/O commands

  • Math functions

  • String functions

  • Standard functions

  • File processing functions

  • Database support

  • Create GUI Applications for Desktop

  • .dgn file extension

License

The Dragon Programming Language

https://dragon-lang.org

The MIT License (MIT)

Copyright (c) Aavesh Jilani

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.