Phoenix - the Arabic Object-Oriented Programming Language
Total Page:16
File Type:pdf, Size:1020Kb
International Journal of Computer Trends and Technology ( IJCTT ) - Volume 67 Issue 2 - Feb2019 Phoenix - The Arabic Object-Oriented Programming Language Youssef Bassil LACSC – Lebanese Association for Computational Sciences Registered under No. 957, 2011, Beirut, Lebanon Abstract central hub to the adder unit [2]. As a result, A computer program is a set of electronic controlling and setting up new tasks were very instructions executed from within the computer’s challenging and time-consuming. As the years have memory by the computer's central processing unit. Its gone by, a brilliant scientist came up with a genius idea purpose is to control the functionalities of the in the late 1940s, he thought that he could automate the computer allowing it to perform various tasks. programming tasks in a computer by using encoded Basically, a computer program is written by humans instructions stored in computer’s memory and using a programming language. A programming executed sequentially to perform certain operations. language is the set of grammatical rules and John von Neumann called his breakthrough vocabulary that governs the correct writing of a “Stored-Program” [3]. The stored-program concept computer program. In practice, the majority of the means that instructions that make up the software are existing programming languages are written in stored electronically in binary format in the computer's English-speaking countries and thus they all use the memory, rather than being manually configured by English language to express their syntax and humans using wires and knobs from outside the vocabulary. However, many other programming computer. The idea was further developed to languages were written in non-English languages, for incorporate both data and instructions in the same instance, the Chinese BASIC, the Chinese Python, the memory, a model that is known as the Von Neumann Russian Rapira, and the Arabic Loughaty. This paper Architecture [4]. discusses the design and implementation of a new Fundamentally, a computer program as we know it programming language, called Phoenix. It is a today is a set of electronic instructions executed from General-Purpose, High-Level, Imperative, within the computer’s memory by the computer central Object-Oriented, and Compiled Arabic programming processing unit CPU. The purpose of a computer language that uses the Arabic language as syntax and program is to control the functionalities of the vocabulary. The core of Phoenix is a compiler system computer allowing it to perform miscellaneous tasks made up of six components, they are the Preprocessor, including mathematical computations, scientific the scanner, the parser, the semantic analyzer, the operations, accounting, data management, gaming, code generator, and the linker. The experiments text editing, audio, video, and image archiving, and conducted have illustrated the several powerful Internet. Basically, a computer program is written by a features of the Phoenix language including functions, human using a programming language. A while-loop, and arithmetic operations. As future work, programming language is the set of grammatical rules more advanced features are to be developed including and vocabulary that governs the correct writing and inheritance, polymorphism, file processing, graphical structure of a computer program or code [5]. A trivial user interface, and networking. property of a programming language is the human language it uses to express its syntax and vocabulary. Keywords - Arabic Programming, Compiler Design, For instance, the programming language C uses the Object-Oriented, Programming Languages. English language as a means to write code. Another example is the Chinese BASIC which uses the Chinese I. INTRODUCTION language to write computer programs. When computers were first designed, they were all This paper discusses the design and implementation hardwired, in that they were limited to perform of a new programming language, called Phoenix. It is a predefined functionalities without being able to be General-Purpose, High-Level, Imperative, controlled or manipulated by software. After several Object-Oriented, and Compiled Arabic programming decades, programmable computers were finally language that uses the Arabic language as a means to invented [1]. In early days of programmable write computer programs. computers, programming was not done through software as it is being done today; rather, it was done II. EXISTING NON-ENGLISH by configuring a combination of plugs, wires, and PROGRAMMING LANGUAGES switches. For instance, in order to perform an addition Non-English programming languages are operation, a cable has to be manually connected from a ISSN: 2231 – 2803 http://www.ijcttjournal.org Page 7 International Journal of Computer Trends and Technology ( IJCTT ) - Volume 67 Issue 2 - Feb2019 programming languages that do not use the English couple of other Arabic programming languages were vocabulary to write programming statements. Over the developed including AMORIA [21], Ebda3 [22], Jeem past decades, several non-English programming [23], Loughaty [24], Qlb [25], and Kalimat [26]. languages were developed with the purpose to appeal Unfortunately, all the aforementioned Arabic to the local audience especially students and programming languages are not fully comprehensive non-English speakers. For instance, ALGOL 68 was in that some stayed on papers, others are not turning extended to support several natural languages other complete, while others are not compiled. Furthermore, than English such as Russian, German, French, and some of these languages are not general-purpose and Japanese [6]. In the early 1970s, Chinese lack many elementary programming features. Also programming languages were introduced to make others are console-based missing graphical user learning programming easier for Chinese interface features and event handling. Finally, last but programmers. Some of these languages include not least, the majority of those languages are Chinese BASIC [7], Easy Programming Language non-distributable in that they don't generate standalone (EPL) [8], and ChinesePython [9]. In French, there executable files for Windows or for any other target also exist couple of programming languages whose operating system. syntax is written in the French language. Linotte [10] for instance is an interpreted high-level language III. PHOENIX – THE PROPOSED ARABIC targeted to French-speaking children to easily learn PROGRAMMING LANGUAGE programming in their native language. Likewise, LSE Phoenix is a General-Purpose, High-Level, (Language Symbolique d'Enseignement) is a French Imperative, Object-Oriented, Compiled, Arabic programming language similar to BASIC exhibiting computer programming language intended to write some advanced features such as functions, conditional computer programs in the Arabic language. Phoenix is statements, and local variables [11]. Furthermore, C# syntax-like language using modern programming hundreds of programming languages exist using features to improve the programming experience in the international languages though none of them has gone Arabic language. Phoenix is compiled in that it mainstream, such as Hindi Programming, a generates an object/machine code from source-code programming language using Hindi syntax [12], Mind prior to program execution. Phoenix in its current [13], a Japanese programming language, Latino [14], a implementation runs over Windows operating system language based on Spanish syntax and vocabulary, and is able to generate an executable file from Rapira [15], a Russian-based programming language compiled machine code. Moreover, Phoenix is mainly intended for educational usage in schools, and powered by an easy-to-use and ergonomic IDE VisuAlg [16], a Portuguese-based programming (Integrated Development Environment) that allows language similar to Pascal, designed for educational programmers to create, save, debug, and compile their purposes. source-code. As concerning Arabic-based programming languages, several were presented. One of the earliest IV. THE LANGUAGE FEATURES attempts to develop an Arabic programming language Phoenix supports many modern and powerful was by Al Alamiah company, a Kuwaiti leading programming features and disciplines making it company in Arabic language technologies who suitable in the world of software development. They developed the Arabic Sakhr Basic in 1987 [17]. Sakhr can be summarized as follows: Basic is an Arabized version of the BASIC language • Strong data types: Decimal and String with keywords and expressions written using the • Implicit type conversion between data types native Arabic language. It targeted the Arabic version • Dynamic arrays with automatic bound checking of MSX home computers originally conceived by • Global and Local variable declaration Microsoft. ARLOGO [18] is another Arabic • Conditional Structures (if and if-else) programming language intended for educational • Control Structures (while) • Code blocks and Compound statements purposes and is based on UCB Logo language. • Global, local, and function scopes ARLOGO is open-source and currently available only • Function declaration with parameters and return type for Microsoft Windows. ARABLAN [19] is yet • Recursion another Arabic programming language designed in • Arithmetic calculation: + , - , * , / , % , ( ) 1995 and planned for use in teaching programming for • String concatenation school children in the Arab countries. Al-Risalah [20] • Logical evaluation using