Jump to content

Qalb (programming language): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Undid revision 1082790466 by ElijahPepe (talk)
Citation bot (talk | contribs)
Added website. | Use this bot. Report bugs. | Suggested by Dominic3203 | Category:Programming language topic stubs | #UCB_Category 17/451
 
(14 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{Short description|Programming language with Arabic keywords}}
{{more citations needed|date=February 2013}}
{{more citations needed|date=February 2013}}
{{Infobox programming language
{{Infobox programming language
Line 9: Line 10:
| operating system =
| operating system =
| license =
| license =
| website = {{URL|http://qlb-repl.herokuapp.com/}}
| website = {{URL|https://nas.sr/%D9%82%D9%84%D8%A8}}
}}
}}
__NOTOC__
__NOTOC__
'''قلب''' ({{IPA-all|ʔalb|Levantine Arabic:}}), transliterated '''''Qalb''''', '''''Qlb''''' and '''''Alb''''', is a [[functional programming]] language allowing a programmer to write programs completely in [[Arabic language|Arabic]].<ref>{{cite web | url = https://www.theregister.co.uk/2013/01/25/arabic_programming_language | title = Meet قلب, the programming language that uses Arabic script | access-date = 2013-02-06}}</ref> Its name means ''heart'' and is a [[recursive acronym]] in Arabic meaning ''Qlb: a programming language'' ({{lang|ar|قلب: لغة برمجة}}, ''{{transl|ar|Qlb: Lughat Barmajah}}''). It was developed in 2012 by Ramsey Nasser, a computer scientist at the [[Eyebeam Art and Technology Center|Eyebeam Art + Technology Center]] in [[New York City]], as both an artistic endeavor and as a response to the Anglophone bias in the vast majority of programming languages, which express their fundamental concepts using [[English language|English]] words.
'''قلب''' ({{IPA-all|ʔalb|Levantine Arabic:}}), transliterated '''''Qalb''''', '''''Qlb''''' and '''''Alb''''', is a [[functional programming]] language allowing a programmer to write programs completely in [[Arabic language|Arabic]].<ref>{{cite web | url = https://www.theregister.co.uk/2013/01/25/arabic_programming_language | title = Meet قلب, the programming language that uses Arabic script | website = [[The Register]] | date = 2013-01-25 | access-date = 2013-02-06}}</ref> Its name means "heart" in Arabic and is a [[recursive acronym]] for ''Qlb: a programming language'' ({{lang|ar|قلب: لغة برمجة}}, ''{{transl|ar|Qlb: Lughat Barmajah}}''). It was developed in 2012 by Ramsey Nasser, a computer scientist at the [[Eyebeam Art and Technology Center|Eyebeam Art + Technology Center]] in [[New York City]], as both an artistic endeavor and as a response to the Anglophone bias in the vast majority of programming languages, which express their fundamental concepts using [[English language|English]] words.


The syntax is like that of [[Lisp (programming language)|Lisp]] or [[Scheme (programming language)|Scheme]], consisting of parenthesized [[list (programming)|lists]]. All keywords are appropriate Arabic terms, and program text is laid out right-to-left, like all [[Arabic writing|Arabic text]]. Specifically, the Arabic used is [[Lebanese Arabic]], as is evident by the use of {{lang|apc|قول}} instead of the [[Modern Standard Arabic]] {{lang|ar|قل}}.<ref>{{cite web |title=an Arabic typo · Issue #8 · nasser/--- · GitHub |url=https://github.com/nasser/---/issues/8#issuecomment-12755608 |quote="The current version is in Lebanese Arabic by design, future versions will be in Standard and قول will be changed to قل." |last=Nasser |first=Ramsey}}</ref> The language provides a minimal set of primitives for defining [[subroutine|functions]], [[conditional (programming)|conditionals]], [[loop (programming)|looping]], list manipulation, and basic arithmetic [[expression (programming)|expressions]]. It is [[Turing-complete]], and the [[Fibonacci sequence]] and [[Conway's Game of Life]] have been implemented.
The syntax is like that of [[Lisp (programming language)|Lisp]] or [[Scheme (programming language)|Scheme]], consisting of parenthesized [[list (programming)|lists]]. Keywords are in Arabic (specifically, [[Lebanese Arabic]])<ref>{{cite web |title=an Arabic typo · Issue #8 · nasser/--- · GitHub |url=https://github.com/nasser/---/issues/8#issuecomment-12755608 |quote="The current version is in Lebanese Arabic by design, future versions will be in Standard and قول will be changed to قل." |last=Nasser |first=Ramsey|website=[[GitHub]] }}</ref> and program text is laid out right-to-left, like all [[Arabic writing|Arabic text]]. The language provides a minimal set of primitives for defining [[subroutine|functions]], [[conditional (programming)|conditionals]], [[loop (programming)|looping]], list manipulation, and basic arithmetic [[expression (programming)|expressions]]. It is [[Turing-complete]], and the [[Fibonacci sequence]] and [[Conway's Game of Life]] have been implemented.


Because all program text is written in Arabic, and the connecting strokes between characters in the Arabic script can be [[tatweel|extended to any length]], it is possible to align the source code in artistic patterns, in the tradition of [[Arabic calligraphy]].
Because program text is written in Arabic and the connecting strokes between characters in the Arabic script can be [[tatweel|extended to any length]], it is possible to align the source code in artistic patterns, in the tradition of [[Arabic calligraphy]].


A JavaScript-based [[read–eval–print loop|interpreter]] is currently hosted on [[heroku]]app and the project can be [[software fork|forked]] on [[GitHub]].<ref>{{github|nasser/---|قلب: لغة برمجة}}</ref>
A JavaScript-based [[read–eval–print loop|interpreter]] is currently [https://www.xn-----etdcdcu3b3exdwacs.com/ self hosted] and the project can be [[software fork|forked]] on [[GitHub]].<ref>{{github|nasser/---|قلب: لغة برمجة}}</ref>


== Hello world ==
== Hello world ==
Line 25: Line 26:
<span style="color:#46aa03">(</span><span style="color:#00007f">قول</span> <span style="color:#f00">"مرحبا يا عالم"{{rlm}}</span><span style="color:#46aa03">)</span>
<span style="color:#46aa03">(</span><span style="color:#00007f">قول</span> <span style="color:#f00">"مرحبا يا عالم"{{rlm}}</span><span style="color:#46aa03">)</span>


<span dir="rtl"><span style="color:#46aa03">(</span><span style="color:#00007f">قول</span> <span style="color:#f00">"Hello, world&lrm;"</span><span style="color:#46aa03">)</span></span>
<span dir="rtl" lang="powershell"><span style="color:#46aa03">(</span><span style="color:#00007f">قول</span> <span style="color:#f00">"Hello, world&lrm;"</span><span style="color:#46aa03">)</span></span>
</div>
</div>


Line 35: Line 36:


==External links==
==External links==
* [https://www.xn-----etdcdcu3b3exdwacs.com/ Browser-based interpreter]
* [http://nas.sr/%D9%82%D9%84%D8%A8/ Artist's statement]
* [http://nas.sr/%D9%82%D9%84%D8%A8/ Artist's statement]
* [http://qlb-repl.herokuapp.com/ قلب REPL]


[[Category:Functional languages]]
[[Category:Functional languages]]

Latest revision as of 13:01, 29 November 2024

قلب
ParadigmFunctional
Designed byRamsey Nasser
First appeared2012
Websitenas.sr/%D9%82%D9%84%D8%A8
Influenced by
Scheme

قلب (Levantine Arabic: [ʔalb]), transliterated Qalb, Qlb and Alb, is a functional programming language allowing a programmer to write programs completely in Arabic.[1] Its name means "heart" in Arabic and is a recursive acronym for Qlb: a programming language (قلب: لغة برمجة, Qlb: Lughat Barmajah). It was developed in 2012 by Ramsey Nasser, a computer scientist at the Eyebeam Art + Technology Center in New York City, as both an artistic endeavor and as a response to the Anglophone bias in the vast majority of programming languages, which express their fundamental concepts using English words.

The syntax is like that of Lisp or Scheme, consisting of parenthesized lists. Keywords are in Arabic (specifically, Lebanese Arabic)[2] and program text is laid out right-to-left, like all Arabic text. The language provides a minimal set of primitives for defining functions, conditionals, looping, list manipulation, and basic arithmetic expressions. It is Turing-complete, and the Fibonacci sequence and Conway's Game of Life have been implemented.

Because program text is written in Arabic and the connecting strokes between characters in the Arabic script can be extended to any length, it is possible to align the source code in artistic patterns, in the tradition of Arabic calligraphy.

A JavaScript-based interpreter is currently self hosted and the project can be forked on GitHub.[3]

Hello world

[edit]
(قول "مرحبا يا عالم"‏)
(قول "Hello, world‎")

References

[edit]
  1. ^ "Meet قلب, the programming language that uses Arabic script". The Register. 2013-01-25. Retrieved 2013-02-06.
  2. ^ Nasser, Ramsey. "an Arabic typo · Issue #8 · nasser/--- · GitHub". GitHub. The current version is in Lebanese Arabic by design, future versions will be in Standard and قول will be changed to قل.
  3. ^ قلب: لغة برمجة on GitHub

Further reading

[edit]
[edit]