Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

西南交通大学学报

第 54 卷 第 3 期 Vol.54 No.3
2019 六 3 月
JOURNAL OF SOUTHWEST JIAOTONG UNIVERSITY June 2019

ISSN - 0258-2724 DOI:10.35741/issn.0258-2724.54.3.11

Research article

DESIGNING AND IMPLEMENTING AN ARABIC PROGRAMMING


LANGUAGE FOR TEACHING PUPILS
Hussam Hatem Abdul Razaq a,*, Ayedh Shahadha Gasera, Mazin Abed Mohammeda*, Esam Taha Yassenb,
Salama A. Mostafadc, Subhi R. M. Zeebaree d , Dheyaa Ahmed Ibrahime, Mohd Khanapi Abd Ghaniaf,
Rabah N. Farhana
a
College of Computer Science & Information Technology, University of Anbar,
Anbar, Iraq, husam2asafe@yahoo.com, ayedhgaser@gmail.com, rabahalobaidy@yahoo.com,
mazinalshujeary@uoanbar.edu.iq
b
Information Technology Centre, University of Anbar
Anbar, Iraq, etalheety@gmail.com
c
Faculty of Computer Science and Information Technology, Universiti Tun Hussein Onn Malaysia
Johor, 86400, Malaysia, salama@uthm.edu.my
d
Duhok Polytechnic University and Tishk International University
Duhok, Iraq and Erbil, Iraq, subhi.rafeeq@dpu.edu.krd
e
Computer Engineering Techniques Department, Imam Ja'afar Al-Sadiq University
Baghdad, Iraq, dheyaa.ibrahim88@gmail.com
f
Biomedical Computing and Engineering Technologies Applied Research Group, Faculty of Information and
Communication Technology, Universiti Teknikal Malaysia Melaka, Melaka, Malaysia, khanapi@utem.edu.my

Abstract
Observation has been made that in Arab countries, students find it challenging to learn to program in a
different language other than Arabic. Existing literature contains only a few Arabic programming
languages, most of which have never been or have partially been executed. In this article, a novel Arabic
programming language known as Alf..Eih language is proposed. The proposed programming language is
to be used in teaching pupils and schoolchildren in Arabic countries programming. This Arabic
Programming language converts the Arabic language presumed to code in (C++ language) with its
implementation. After the code written in Arabic passes through the first three stages of compiler (lexical,
syntax and semantic), the final phase converts code to (C++). Alf..Eih language covers many of the
directives in the presumed Arabic Language such as, header file, functions, if condition, loops and etc.

Keywords: Arabic programming language, compiler design techniques, programming language paradigms, design
principles programming languages.

摘要 已经观察到,在阿拉伯国家,学生发现学习用阿拉伯语以外的其他语言编程是一项挑战。 现有文献仅
包含少数阿拉伯语编程语言,其中大部分从未被执行过或已经部分执行过。 在本文中,提出了一种新的阿
拉伯语编程语言 Alf..Eih 语言。 拟议的编程语言将用于教授阿拉伯国家编程中的学生和学童。 这种阿拉伯
语编程语言将假定的阿拉伯语言转换为(C ++语言)中的代码及其实现。 在用阿拉伯语编写的代码通过编
译器的前三个阶段(词法,语法和语义)之后,最后阶段将代码转换为(C ++)。 Alf..Eih 语言涵盖了假定
的阿拉伯语中的许多指令,例如头文件,函数,条件,循环等。
Hussam Hatem Abdul Razaq et al. / Journal of Southwest Jiaotong University/ Vol.54.No.3 June 2019

关键词: 阿拉伯语编程语言,编译器设计技术,编程语言范例,设计原则编程语言

I. INTRODUCTION The use of Arabic programming language will in


Nowadays, in computer science and no way isolate the Arabs that use it from the rest
information theory, a Programming language is a of the world. [5], [6], [7] There is no evidence to
set of commands written according to a set of show that without English, the programming
rules determined by the language. [1], [2] These cannot be done because programming has been
orders pass through several stages implemented done in different languages including Chinese,
on a computer. Programming languages are Korean, Hebrew, Spanish, German, French and
divided based on the proximity of human Russian. These languages have been used to
languages to a high-level language (close to the write commands, without abandoning famous
language that is understood by humans) like C programming languages. The most important
and Java languages, and a low-level language (as thing is to create a language that suits the needs
Assembly language), which is close to the and culture of the people using it. Programming
machine language). Alternatively, they are can be learnt without learning the English
sometimes divided based on the purpose of the language. Therefore, it is necessary to create
language. There are languages designed to run on Arabic programming languages, (and not just one
certain devices, such as that of companies that language) without abandoning the popular
produce computers or central processors. The foreign languages. [8]
languages provide the user's guide that contains
the commands for implementing it. More so, II. THE COMPILER PHASES
there are other languages that operate
independently of a machine; they operate within The complexity associated with the designing
a virtual machine, such as Java languages. After and building of computers can be reduced by
the introduction of Syndication systems, Arabic executing simple commands rapidly. It is
applications which include English programming important to combine very simple commands into
languages emerged. [3] This Arabic application a program so as to build a computer program; this
emerged with the aim of creating Arabic is done in what is known as machine learning.
programming languages by translating The use of high-level programming language is
programming languages written in English. The employed in the process of programming because
most famous programming languages in the past the process is prone to error and tedious. There
are BASIC, C and C++. Since the proliferation of can be a huge difference between this language
IT, one of the questions asked is; are there and the machine language which can be executed
available Arabic programming languages? Even by the computer, therefore, this gap must be
though this idea is as old as programming bridged. At this point, the compiler comes to play.
languages, the panel lists are divided into The work of a compiler is to translate or compile
proponent and opponents, even to the idea of a program written in a high-level programming
establishing a language code. [4] language that is suitable for human programmers
Some opponents of Arabic programming into the low-level machine language that is
Language are of the opinion that developing an required by computers. The compiler also tries to
original Arabic programming language is not identify and report obvious programming errors.
feasible, rather, they are of the opinion that the [1], [2], [9] Figure 1 shows the process of
use of English programming language should compilation.
continue to be used. According to these
opponents, it is unimaginable to have a
programming language in any other language
apart from English, not to talk of that which is in
Arabic, involving writing from right to left. They Figure 1.The compilation process
are also against the idea of starting from scratch.
On the other hand, the proponents of this idea, The speed with which the development of
are of the opinion that it is important to have an programs can be carried out can be significantly
Arabic programming language so that Arab influenced by the use of high-level language for
children can be taught programming using the programming. This is as a result of the following:
language. More so, it can be used in multiple • In comparison with machine language, there
areas of programming, rather than using it to brag. is a resemblance between the notation which
西南交通大学学报
第 54 卷 第 3 期 Vol.54 No.3
2019 六 3 月
JOURNAL OF SOUTHWEST JIAOTONG UNIVERSITY June 2019

is utilized by the machine language and the • Code Generator: Finally, the transformed
way humans think about problems. intermediate representation is translated into
• The capability to recognize some obvious the target language.
programming errors is not possessed by the
compiler.
• Programs written in a high-level language
tend to be shorter than equivalent programs
written in machine language.
One other benefits of using high-level
language are that the compilation of the same
program into different machine languages can be
done for the same program, thereby allowing it to
be run on different machines. [4] On the other
hand, as compared with programs that are hand-
coded in machine language can be faster than
programs which have been written in a high-level
language and automatically translated to machine
language. Based on this, machine learning is still
partially used to write some critical programs. [5]
The translator receives the source program as
income and based on it, generates a series of
Figure 2.The compiler phases
machine instructions. This process is so complex,
and it is illogical to consider the process as a one-
The phases of the compiler can be divided
step process. This process can be divided into
into: [7]
two which include the translation process to sub-
• Front-End: this is made up of phases that are
processes. Each stage of the translation receives
reliant on the source language and basically
one input and represents encoding program
independent of the target machine which
income, and gives it the encoding output only.
includes, (Lexical Analyzer, Syntax
The following shows the main relay that makes
Analyzer, and Intermediate Code
up the process of the translation process: [10]
Generation).
• Lexical Analyzer: whose purpose is to
• Back-End: is made up of the phases that rely
divide the incoming source code into small
on the target machine, rather than the source
pieces (token), with each representing a
language which includes (Code
single atomic unit of language. For instance,
Optimization, and Code Generation).
"Keywords", "Constants", "Variable names",
Preprocessing: in this stage, the processing of
and "Operators".
macros, comments and directives is performed:
• Syntax Analyzer: whose purpose is to
• Comments are removed from the source file.
combine the tokens into well-formed
• Macros: if macros are supported by the
expressions (statements) and program; it
language, then the equivalent text is used in
also checks the syntax error.
replacing macros. For instance:
• Semantic Analyzer: whose function is to
determine the meaning of the source
#define pi 3.14
program.
• Intermediate Code Generator: at this point,
When the word (pi) is encountered by the
an internal form of a program is usually
preprocessor, it then replaces it with (3.14).
created, for example:
• Directives: directives are also handled by the
preprocessor; in 'c' language, including a
(+,a,b,t1)
statement such as:
Y=(a-b)*(c+b) (+,c,d,t2)
(*,t1,t2,t3)
# include <"file">
• Code Optimizer: its purpose is to produce a
This line is replaced by the actual file. Figure
more efficient object program (run faster or
3 shows the Language-processing system with
take less space or both).
components.
Hussam Hatem Abdul Razaq et al. / Journal of Southwest Jiaotong University/ Vol.54.No.3 June 2019

optimization. The differences are illustrated in


the diagram below: [13], [14], [15], [16]

Figure 3.The processing of the language Figure 4.Interpretation vs. compilation

Here, the programming language interprets


the first line of the program and turns it into III. LR PARSERS
assembly language, and then moves to the next In this section, a Bottom-Up syntax analysis
line, interprets and converts to assembly language. technique which can be used to efficiently parse a
There are so many similarities between large class of grammars that are context-free. The
interpretation and compiling. In an interpreter, technique is known as LR (k) parsing, the "L"
the processes of parsing, lexing and type- denotes left to right input scanning, while the "R"
checking are performed as in compiler, but the denotes that construction of a rightmost
difference is that the syntax tree is directly derivation in reverse, and "k" represents number
processed for the evaluation of statements, rather of input symbols of look ahead utilized in making
than using it to generate code. An interpreter may parsing decisions; when "k" is omitted, then it is
need to repeatedly process the same piece of assumed to be 1). There are some reasons why
syntax tree (for instance, the body of a loop), LR parsing is a preferred option:
thereby making its implementation slower that of • The construction of LR parsers can be
a compiler. Even though it is easier to write a carried out so as to identify almost all
compiler, the interpreter can be easily moved to a constructs of programming language for
different machine; so interpreters are usually which context-free grammars can be written.
used in applications where speed is not essential. • This parsing method is the commonly used
[11] A programming language may be non-backtracking shift-reduce parsing
implemented through a combination of method, however, it can be efficiently
interpretation and compilation; the intermediate implemented just as in other shift-reduce
level code may be produced by the compiler, and methods.
then interpreted instead of compiling it into • The class of grammars that can be parsed
machine code. In some systems, some parts of a using LR methods is a proper superset of the
program may be compiled to machine code, class of grammars that can be parsed with
while some into intermediate code, which is predictive parsers.
interpreted at runtime while other parts may be LR parser techniques are of three kinds
kept as a syntax tree and interpreted directly. depending on the construct of LR parsing table
Each choice offers its benefits, and it is left for for a grammar:
the programmer to choose a preferred benefit. In 1. Simple LR parser (SLR for short): the
comparison with the intermediate code, the implementation of this is simpler but less
compiled code often seem to be larger, and the efficient among the three. More, it may not
intermediate code larger than the syntax; in each be able to generate a parsing table for
translation stage, the running speed improves. specific grammars as compared to other
[12] methods.
The source code is translated by an interpreter 2. Canonical LR parser: It is the most powerful
into a target representation which can be and most expensive.
executed and evaluated immediately. There is a 3. Look ahead LR parser (LALR for short): in
resemblance between the structure of the comparison to the two other types, it is
interpreter and the compiler, but the interpreter intermediate in power and more costly.
the time used in producing the executable However, the method functions on the
representation varies just like the time used for majority of programming-language
西南交通大学学报
第 54 卷 第 3 期 Vol.54 No.3
2019 六 3 月
JOURNAL OF SOUTHWEST JIAOTONG UNIVERSITY June 2019

grammars and can be efficiently


implemented using some effort.
An LALR parser or Look-Ahead LR parser is
a type of LR parser with small parse tables and
are capable of handling more grammars than SLR
parsers.

Where the program consists of a series of


sentences that begin with words reflecting the
kind of sentence and function in the language
Figure 5.LR parser algorithm ending in points. The following sections describe
the components of the program with examples:
The efficiency of the LALR parser in
identifying a single correct Bottom-Up parser in A. Header Files
one left-to-right scan over the input stream is Represents the top of the program through
similar to that of other kinds of LR parsers; the which the type of library needed by the program
LALR does not use backtracking tactics or is known, this language supports three types of
guesswork for this identification. The parser is libraries files which are; "math, standard and
generated mechanically from a formal grammar strings". More than one library can be defined
for the language. Similar methods and tables are within the program. The general form is:
possessed by LALR and the other methods (SLR
parser and Canonical LR parser), but their
algorithms of mathematical grammar analysis
that is used by the parser generation tool vary.
More grammars are accepted by the LALR
generators than the SLR generators, but fewer
grammars than full LR (1). Full LR is often
B. Definitions
avoided because it involves parse tables that are In this section, the variables and arrays used
larger, except it is most needed for some specific in the program are defined. The location of the
computer language. The expression of actual definitions can be before or after the main
computer languages can make as LALR (1) program. There are three types of definitions:
grammars. In situations whereby they cannot be "integer, float and characters". The general form
expressed as such, a LALR (2) grammar is often of the definitions:
sufficient. If it is just LALR (1) grammar that is
allowed by the parser generator, then some hand-
written code is required by the anytime it comes
across constructs that require extended look
ahead.

IV. DESIGN OF THE LANGUAGE


The general form of the language is:

C. Input Statements
Input statements can be used to read the
values entered by the user. Where you can enter
more than one variable, and the general formula
for reading statements is:
Hussam Hatem Abdul Razaq et al. / Journal of Southwest Jiaotong University/ Vol.54.No.3 June 2019

D. Output Statements
Output statements can be used to write a
variable or constant or new line, and the general
formula for writing statements is:
G. Condition
Conditional sentences are used to implement a
set of sentences by a particular condition, and the
general formula is:

E. Sub-programs
The subprograms (functions) can be defined
before the main program and can be
characterized by the word (‫ )داله‬as a keyword.
Where the function consists of the function name
and variables and referrer (i.e., the type of
function (integer, float, characters)).The general H. # define directive
form is: The objective of the directives is to put a
specific value in a variable that accepts this value.
In the designed language we used the word "‫"اسند‬
to assign values to different variables. And it will
be located after the header files. The general
formula is:

V. IMPLEMENTATION AND RESULTS


To implement the language model, the use of
the C++ programing language is employed as a
fundamental tool to develop the concept and for
F. Loops prototyping. C++ adapts more to computation
Loops statements are used to repeat the logic than to mechanics which involves using
process that is required to be executed more than tasks like stacks pointers, memory allocation, and
once. Loop can be distinguished in the program etc. The language was designed and implemented
by keyword (‫)دوارة‬. Where the loop consists of using the C++ programming language. Also, we
three main parts (beginning, condition, increase used Visual Basic to implement windows and
or decrease). The general formula is: link the programs. This work is done bearing in
mind a non-expert user that can learn the
language using simple ideas. The process of
implementation of this program involves a
number of stages which are subsequently
discussed:
西南交通大学学报
第 54 卷 第 3 期 Vol.54 No.3
2019 六 3 月
JOURNAL OF SOUTHWEST JIAOTONG UNIVERSITY June 2019

B. Preprocessor
In this stage, the "spaces and newline" of the
programs that cause problems are deleted, so we
decided to get rid of them at this stage, example:

Figure 6.The stages of the implementation

A. Input
Input is a program that supposed to be in the
Arabic language where the grammar is presumed Figure 7.The algorithm of preprocessor with components
as follows:

C. Lexical
In this stage, we split the program into various
components depending on the original written
language; each component has a type (e.g.
number. keyword, symbol, etc.....). If the
component does not exist, then a lexical error
occurs. An example of the algorithm of the
lexical phase is shown in figure 8.
Hussam Hatem Abdul Razaq et al. / Journal of Southwest Jiaotong University/ Vol.54.No.3 June 2019

Figure 8.The algorithm of the lexical phase

Figure 10.The algorithm of syntax phase

Figure 9 is showing the main window of the


Arabic programing language and the user
interface of the language.

Figure 9.The windows of the Arabic programing language

D. Syntax
This stage is responsible for the grammatical
construction and outputs which are either true or Figure 11.The algorithm of LALR
not depending on the work of the grammar. The
method which we used here is the lock ahead E. Semantic
parser (LALR), which is the best method that can This stage links the definitions with the use
deal with the largest number of grammars. The and testing of each statement in terms of meaning
algorithm of syntax phase is shown in Figure 10, as shown in the following example. Figures12
and Figure11 shows the algorithm of LALR. and 13 show the algorithm and implementation of
the semantic phase.
西南交通大学学报
第 54 卷 第 3 期 Vol.54 No.3
2019 六 3 月
JOURNAL OF SOUTHWEST JIAOTONG UNIVERSITY June 2019

F. Synthesis
In this stage, the source code for building
code in C+ + language is assembled in order to
translate each expression in Arabic to its
equivalent in C+ +.

G. Output
Figure12.The algorithm of the semantic phase The code in C++ language with implementation.
Figure 14 shows the input of Arabic window and
the output window in C++.

Figure14.The input and the output windows

VI. CONCLUSION
Designing a new programming language is
essential because it will enhance the acquisition
Figure13.The implementation of semantic phase of basic knowledge in software engineering and
information technology. Thus, learning this basic
information in the native languages may assist
Hussam Hatem Abdul Razaq et al. / Journal of Southwest Jiaotong University/ Vol.54.No.3 June 2019

students in comprehending the idea of an Agent-based Multi-Natural Language Anti-


programming, more than when foreign languages Spam Model. In 2018 International Symposium
are used. In addition, students may be more on Agent, Multi-Agent Systems and Robotics
interested in programming when the (ISAMSR) (pp. 1-5). IEEE.
programming language is written in their native [4] MOSTAFA, S.A., MUSTAPHA, A.,
language. It is against this backdrop that a new HAZEEM, A.A., KHALEEFAH, S.H. and
Arabic programming language called Alf..Eih MOHAMMED, M.A., 2018. An Agent-Based
language for schoolchildren and high schools in Inference Engine for Efficient and Reliable
Arab countries is proposed in this study. This Automated Car Failure Diagnosis Assistance.
paper is the initial move towards new Arabic IEEE Access, 6, pp.8322-8331.
programming language. However, more work is [5] HAMID, M., 1995. Design of an arabic
needed so as to have completely created programming language (ARABLAN). Computer
programming languages. Moreover, Alf..Eih languages, 21(3-4), pp.191-201.
language should be tested in schools to determine [6] YAGHI, H.M., 1997. Computer education in
if it is able to stimulate interest in a computer Lebanon: Status and comparison with some other
programming language. Alf..Eih language countries. Prospects, 27(2), pp.297-307.
proposed in this study converts the Arabic [7] MUCHNICK, S., 1997. Advanced compiler
language presumed to code in C++ language with design implementation. Morgan Kaufmann.
its implementation. Where the code written in [8] MOSTAFA, S.A., AHMAD, M.S.,
Arabic passes the first three stages of the MUSTAPHA, A. and MOHAMMED, M.A.,
compiler which include Lexical, syntax, 2017. Formulating layered adjustable autonomy
semantics, the final phase converts code to C++. for unmanned aerial vehicles. International
The proposed language covers many of the Journal of Intelligent Computing and
directives in the Arabic Language presumed, of Cybernetics, 10(4), pp.430-450.
which (header file, functions, if condition, loops [9] Ghani, M.K.A., Mohammed, M.A., Ibrahim,
…etc). It’s clear that the results that have been M.S., Mostafa, S.A. and Ibrahim, D.A., 2017.
obtained are to take advantage of compilers in Implementing an Efficient Expert System for
programming language design, approximating Services Center Management by Fuzzy Logic
what is used in the circle's code. Through in- Controller. Journal of Theoretical & Applied
depth and careful research to find appropriate Information Technology, 95(13).
solutions to the problems existing in the [10] Al-Imamy, S., Alizadeh, J. and Nour, M.A.,
algorithm used in this language (LALR), we can 2006. On the development of a programming
find a suitable solution to the problem of teaching tool: The effect of teaching by templates
Backtracking. The aim of this is to produce a on the learning process. Journal of Information
programming language that supports the Arabic Technology Education: Research, 5, pp.271-283.
language and in turn, meets the requirements of [11] Al-Azawei, A., Al-Bermani, A. and
the Arab community compiler. This language can Lundqvist, K., 2016. Evaluating the effect of
be taught as a code in middle and high schools so Arabic engineering students’ learning styles in
that students can understand how programming blended programming courses. Journal of
languages work, the requirements and basis for Information Technology Education: Research,
using rules in building programming languages. 15(unknown), pp.109-130.
It is also of added advantage to incorporate other [12] Mohammed, M.A., Al-Khateeb, B. and
library functions to the process of developing a Ibrahim, D.A., 2016. Case based reasoning shell
programming language, and as well expand the frameworkas decision support tool. Indian
rules of the language to include a larger number Journal of Science and Technology, 9(42).
of loops and functions and add the class files. [13] Almekhlafi, A.G., 2006. The effect of
computer assisted language learning (CALL) on
REFERENCES United Arab Emirates English as a foreign
[1] MOGENSEN, T.Æ., 2009. Basics of compiler language (EFL) school students’ achievement
design. Torben Ægidius Mogensen. and attitude. Journal of Interactive Learning
[2] KIM, D. and YEUNG, D., 2002, October. Research, 17(2), pp.121-142.
Design and evaluation of compiler algorithms for [14] Mohammed, M.A., Ghani, M.K.A., Mostafa,
pre-execution. In ACM SIGPLAN Notices (Vol. S.A., Ibrahim, D.A., 2017. Using Scatter Search
37, No. 10, pp. 159-170). ACM. Algorithm in Implementing Examination
[3] MOHAMMED,M.A., GUNASEKARAN, Timetabling Problem. Journal of Engineering and
S.S., MOSTAFA, S.A., MUSTAFA, A. and Applied Sciences, 12: 4792-4800.
GHANI, M.K.A., 2018, August. Implementing
西南交通大学学报
第 54 卷 第 3 期 Vol.54 No.3
2019 六 3 月
JOURNAL OF SOUTHWEST JIAOTONG UNIVERSITY June 2019

[15] Mohammed, M.A., Ghani, M.K.A., Omar Engineering and Applied Sciences 12, no. 20
Ibrahim Obaid, Mostafa, S.A., Mohd Sharifuddin (2017): 5166-5181.
Ahmad," Ibrahim, D.A., and" MA Burhanuddin. [16] Mohammed, M.A., et al, 2017. A review of
A Review of Genetic Algorithm Application in genetic algorithm applications in solving vehicle
Examination Timetabling Problem, Journal of routing problem. J Eng Appl Sci, 12, pp.4267-
4283.

参考文:

[1] MOGENSEN,T.,2009 编译器设计的 [11] Al-Azawei , A. , Al-Bermani , A. 和


基础知识 TorbenÆgidiusMogensen Lundqvist,K.,2016 评估阿拉伯工科学生在
[2] KIM,D. 和 YEUNG,D.,2002 年 10 混合编程课程中的学习风格的影响 Journal of
月 设计和评估预执行的编译器算法 在 ACM Information Technology Education:Research,
SIGPLAN Notices(第 37 卷,第 10 期,第 15 (unknown),pp.109-130
159-170 页)中 ACM [12] Mohammed , M.A. , Al-Khateeb , B.
[3] MOHAMMED , M.A. , 和 Ibrahim,D.A.,2016 基于案例的推理 shell
GUNASEKARAN,S.S.,MOSTAFA,S.A., 框架作为决策支持工具 印度科学技术杂志,9
MUSTAFA,A. 和 GHANI,M.K.A,2018, (42)
August 实现基于代理的多自然语言反垃圾邮 [13] Almekhlafi,A.G.,2006 年 计算机辅
件模型 2018 年代理,多代理系统和机器人国 助语言学习(CALL)对阿拉伯联合酋长国英语
际研讨会(ISAMSR)(第 1-5 页) IEEE 作为外语(EFL)学校学生的成就和态度的影
[4] MOSTAFA,S.A.,MUSTAPHA,A., 响 交互式学习研究杂志,17(2),pp.121-142
HAZEEM , A.A. , KHALEEFAH , S.H. 和 [14] Mohammed,M.A.,Ghani,M.K.A.,
MOHAMMED,M.A.,2018 基于代理的推理 Mostafa,S.A.,Ibrahim,D.A.,2017 使用分
引擎,用于高效可靠的汽车故障诊断辅助 散搜索算法实现考试时间表问题 Journal of
IEEE Access,6,pp.8322-8331 Engineering and Applied Sciences,12:4792-
[5] HAMID,M.,1995 设计阿拉伯语编程 4800
语言(ARABLAN) 计算机语言,21 (3-4), [15] Mohammed,M.A.,Ghani,M.K.A.,
pp.191-201 Omar Ibrahim Obaid , Mostafa , S.A. ,Mohd
[6] YAGHI,H.M.,1997 黎巴嫩的计算机 Sharifuddin Ahmad,“Ibrahim,D.A。和”MA
教育:现状和与其他一些国家的比较 前景, Burhanuddin。遗传算法在考试时间表问题中
27(2),pp.297-307 的应用综述,工程与应用科学学报 12,no 20
[7] MUCHNICK,S.,1997 高级编译器设 (2017):5166-5181
计实现。摩根考夫曼 [16] Mohammed,M.A. 等,2017 年 遗传算
[8] MOSTAFA, S.A.,AHMAD , M.S. , 法在解决车辆路径问题中的应用综述 J Eng
MUSTAPHA,A. 和 MOHAMMED,M.A., Appl Sci,12,pp.4267-4283
2017。为无人驾驶飞行器制定分层可调自治
国际智能计算与控制论杂志,10(4),pp.430-
450
[9] Ghani,M.K.A.,Mohammed,M.A.,
Ibrahim,M.S.,Mostafa,S.A. 和 Ibrahim,
D.A.,2017 通过模糊逻辑控制器实现服务中
心管理的高效专家系统。理论与应用信息技
术期刊,95(13)
[10] Al-Imamy,S.,Alizadeh,J. 和 Nour
,M.A.,2006 关于编程教学工具的开发:模
板 教 学 对 学 习 过 程 的 影 响 Journal of
Information Technology Education:Research,
5,pp.271-283

You might also like