You are on page 1of 12

Chapter 1: Introduction

1.1 Introduction to Project

Artificial Intelligence (AI), sometimes called machine intelligence, is intelligence


demonstrated by machines, in contrast to the natural intelligence displayed by humans and
other animals. In computer science AI research is defined as the study of "intelligent agents":
any device that perceives its environment and takes actions that maximize its chance of
successfully achieving its goals. Colloquially, the term "artificial intelligence" is applied
when a machine mimics "cognitive" functions that humans associate with other human
minds, such as "learning" and "problem solving".

AI was founded as an academic discipline in 1956, and in the years since has experienced
several waves of optimism, followed by disappointment and the loss of funding (known as an
"AI winter"), followed by new approaches, success and renewed funding. For most of its
history, AI research has been divided into subfields that often fail to communicate with each
other. The traditional problems (or goals) of AI research include reasoning, knowledge
representation, planning, learning, natural language processing, perception and the ability to
move and manipulate objects.

Machine learning (ML) is a category of an algorithm that allows software applications to


become more accurate in predicting outcomes without being explicitly programmed. The
basic premise of machine learning is to build algorithms that can receive input data and use
statistical analysis to predict an output while updating outputs as new data becomes available.

Machine Learning is used anywhere from automating mundane tasks to offering intelligent
insights, industries in every sector try to benefit from it. You may already be using a device
that utilizes it. For example, a wearable fitness tracker like Fitbit, or an intelligent home
assistant like Google Home.

This project is made by combination of two programming languages:


1. Java
2. Python
1.2 Objectives of Project

The main objectives of this project are: -

 To develop a synchronizer using AI in order to facilitate the user


o For executing java and python code.
o To synchronize the working of java and python code.
 To develop automatic code debugger to analyze code for errors and correct them
without user interaction.
 To remove flaws of both the language by combining them into a single unit.
Chapter 2: System Requirements

The hardware requirements of this project is shown below in the table 2.1 :-

Operating System Windows 7 and above

Processor Intel Core Series or AMD Ryzen Series

Speed 3.0 GHZ

Memory 4 GB RAM

Hard Disk Drive 1.5 GB

Table 2.1

The software requirements of this project is shown below in the table 2.2 :-

Development Environment NetBeans, PyCharm IDE

Language Java, Python

Front End Java

Back End Java, Python

Browser Used Google Chrome

Table 2.2
Chapter 3: Software Requirement Analysis

The number of Java developers varies significantly. In 2003, Java developers were totaled
between 1,5 and 3 million; in 2007, when Java became open source, this number had risen to
6 million. The Global Developer Population and Demographics Survey, conducted by Evans
Data Corporation, reported that the Java developer population was 9 million in 2009 making
Java one of the most used programming languages worldwide.

According to SlashData, the number of Java developers in the world was 7,1 million as of
September 2018 (source).
As for 2019, the number will reach 7,6 million.

According to SlashData the number of Python developers was 7 million in 2018. Nowadays,
Python is gradually getting closer to Java in terms of popularity because of its vast library
base compared to java.

Despite all these facts these languages have many flaws such as: -
 JAVA
 Memory limitation.
 Slow response is inversely proportional to project size.
 Less library base.
 Almost no libraries are present for implementing AI.
 Etc.

 PYTHON
 Slower than java due to being interpreted.
 No build-in support for making desktop applications.
 Fewer controls are available for creating GUI applications.
 Etc.

The main aim of our project is to develop a programming language that will inherit the java
and python syntax and their advantages.
Chapter 4: Software Design

4.1 System Design


System design is the process or art of defining the architecture, components, modules
interfaces, and data for a system to satisfy specified requirements. One could see it as the
application of systems theory to product development. Design is the creative process. It deals
with the creating ability of the programmer. A good design is the key to effective system. The
term “Design” is defined as “The process of applying various techniques and principles for
the purpose of defining a process or a system in sufficient details to permit its physical
realization”.

Physical design: The physical design relates to the actual input and output processes of
the system. This is laid down in terms of how data is input into a system, how it is
verified/authenticated, how it is processed, and how it is displayed as output.

External Design: External design consists of conceiving, planning out and specifying
the externally observable characteristics of the software product. These characteristics
include user displays or user interface forms and the report formats, external data sources and
the functional characteristics, performance requirements etc. External design begins during
the analysis phase and continues into the design phase.

Logical Design: The logical design of a system pertains to an abstract representation of


the data flows, inputs and outputs of the system. This is often conducted via modeling, which
involves a simplistic (and sometimes graphical) representation of an actual system. In the
context of systems design, modeling can undertake the following forms, including:
– Data flow diagrams
– Entity Relationship Diagrams
4.2 Flow Chart
Flowcharts are maps or graphical representations of a process. Steps in a process are shown
with symbolic shapes, and the flow of the process is indicated with arrows connecting the
symbols. There are many varieties of flowcharts and scores of symbols that you can use. A
flowchart is a type of diagram that represents an algorithm or process, showing the steps as
boxes of various kinds, and their order by connecting them with arrows. This diagrammatic
representation can give a step-by-step solution to a given problem. Process operations are
represented in these boxes, and arrows connecting them represent flow of control. Data flows
are not typically represented in a flowchart, in contrast with data flow diagrams; rather, they
are implied by the sequencing of operations. Flowcharts are used in analyzing, designing,

Figure 4.2: Flowchart of Pheonix


4.3 Data Flow Diagram (DFD)
A data-flow diagram (DFD) is a graphical representation of the flow of data. The purpose of
DFD is to clarify system requirements and identify major transformations that will become
programs in system design. These diagrams help to understand the basic Working of the
system. It helps to make and recognize various parts and their inter relationships. It is a way
of expressing system requirement in a graphical form; this leads to a modular design. It is
also known as bubble chart. A DFD consists of series of bubbles joined by lines. The bubbles
represent data transformations and the lines represent data flows in the system.

 Context Level DFD

Figure 4.3.1: Pheonix Procedure

 DFD Level 0 (Java)

Figure 4.3.2: DFD Level 0


 DFD Level 1 (Python)

Figure 4.3.3: DFD Level 1


Chapter 5: Core Modules of Project

The Modules of the project are: -

 Code Separator: - Used to separate the java and python codes.


 Lexical Analyzer: - Reads program removes white spaces, comments and converts it
into tokens.
 Syntax Analyzer: - Constructs parse tree by taking tokens one by one.
 Semantic Analyzer: - Verifies the parse tree. It also does type checking, label
checking and flow checking.
 Intermediate Code Generator: - Generates intermediate code.
 Code Optimizer: - Optimizes the code for using fewer resources.
 Target Code Generator: - Used to create machine dependent code. It also does
register allocation and instruction selection.
Chapter 6: Output Screens

 Pheonix Home
It is first page shown when pheonix installer/configurator is launched.

Figure 6.1: Pheonix Installer/Configurator Home

 Pheonix Home (Install Submenu)


It is used to install the pheonix programming language in computer.

Figure 6.2: Pheonix Installer/Configurator (Install Submenu) Home


 Pheonix Home (Config Submenu)
It is used to convert java and python installed in computer to pheonix programming
language.

Figure 6.3: Pheonix Installer/Configurator (Config Submenu) Home


References

1. For Java Info


https://www.oracle.com
Accessed on [Jun 25, 2018 Jun 26, 2018 Jun 28, 2018 July 10, 2018 July 11, 2018]

2. For Python Info


https://opensource.com/resources/python
https://www.javatpoint.com/python-applications
https://www.javatpoint.com/python-features
Accessed on [Jun4, 2018 July30, 2018, October 15, 2018]

3. For Debugging Purposes


https://stackoverflow.com/
Accessed [Aug 2,2018 Aug 10,2018, Sept 15,2018, Oct 10,2018]

You might also like