Skip to content
This repository has been archived by the owner on Jan 6, 2023. It is now read-only.
/ ABJAD Public archive

ABJAD is a new Interpreted Arabic Programming Language written using C#

License

Notifications You must be signed in to change notification settings

mohammed-ezzedine/ABJAD

Repository files navigation

ABJAD

An Arabic Scripting Interpreted Programming Language written using C#

Website:

https://mohammed.ezzedine.me/abjad
Online documentation and an editor for writing and running ABJAD code.
Support for both Arabic and English Languages.

Naming:

Abjad (in Arabic: أبجد) refers to the alphabets

Use Case:

It can be used for teaching kids, with limited knowledge in English, some concepts about programming.

Features:

    Till now, it supports limitted and basic programming features:
  • Declaring variables and constants
  • Assigning values to variables
  • Do computational jobs using the basic math operators (+, -, * and /)
  • Creating functions with or without parameters
  • Creating classes and instantiating them
  • For and while loops
  • If-else statements
  • Printing values to a file
  • Adding comments to the code

Specifications:

  • ABJAD is a dynamically typed language (like JavaScript, Python, etc.)
  • ABJAD is an interpreted lanugage (opposite to compiled languages)
  • ABJAD programs have .abjad file extension

Syntax:

It is similar in syntax to JavaScript, with two basic modifications: the characters language (Arabic), and the text direction (From right to left).

Here is a Hello World example: أكتب("مرحبا بالعالم!")؛

  • The syntax basically resembles the usage of curly braces as in C family languages
  • Statements must end with a semicolon ؛

For more details about the syntax, check this wiki page

ABJAD sample programs:

Grammar:

The grammar of the language is provided here.

A reference to words-tokens mapping is provided here

Installation:

Instructions for installing and using ABJAD's interpreter are provided in the wiki here

Writing ABJAD programs:

You're going to need an editor that supports Right-To-Left text alignment. You can use Notepad++

License:

MIT License for open-source projects.

Inspiration and Reference:

CSharpLox by Mohammad Rahhal.