On Creating an Arabic Programming Language!

 

The Story of Noor

 

by:

Ahmed Abdalla

@simplyahmaz1ng

Qalb programming language

Author: Ramsey Nasr

Released: 2013

My Goals

 

Imperative, algol based programming language

 

Audience

 

Middle schoolers, high schoolers

range 1-100

foreach

do

in

thing

function invocation & assignment expression

print statement

if statement

"end"

"Instruct a worker"

func name

arg(s)

"to do"

return value

Choosing keywords?

  • Choose words from
    • Classical Arabic?
    • Modern Standard Arabic?
    • My dialect of Arabic?

Noor is from here (Sudan)

Arabic dialects

Some approved

Some disapproved

from kivy.app import App
from kivy.uix.textinput import TextInput


class TestApp(App):
    def build(self):
        self.title = 'Editor'
        return TextInput()

TestApp().run()

When I tried to do it in Python...

To Properly Display Arabic Text

Bidi Algorithm

Reshaper

Keyboard/File input

Some nice lookin Arabic!

Unicode Bidirectionality Algorithm (BIDI)

Line dir

Word dir

ههه  ه

ه ه ه  ه

Arabic Text Reshaping

Memory:

Display:

Lookup table:

Arabic Text Reshaping (ligatures)

time + language hops

Compiler

Interpreter

src code

AST/ByteCode

Stuff happens..

How Noor works

PEG/JS

Grammar

Bidi algorithm

Reshape

Made with Slides.com