A Java Based 4th Generation Multi-Targeted User Interface Compiler (JUICE)

Similar documents
CA Compiler Construction

Compiler Construction

Compiler Construction D7011E

Compiler Construction LECTURE # 1

Compiler Design Overview. Compiler Design 1

Introduction to Syntax Analysis. Compiler Design Syntax Analysis s.l. dr. ing. Ciprian-Bogdan Chirila

Introduction to Compiler Construction

Automatic generation of LL(1) parsers

CS426 Compiler Construction Fall 2006

Compiler Construction 2010 (6 credits)

Compilers and Code Optimization EDOARDO FUSELLA

Compiler Construction Principles And Practice Solution Manual

Introduction to Compiler Construction

Experiences in Building a Compiler for an Object-Oriented Language

INTRODUCTION TO COMPILER AND ITS PHASES

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

Quick Parser Development Using Modified Compilers and Generated Syntax Rules

Demonstration of Software for Optimizing Machine Critical Programs by Call Graph Generator

LECTURE NOTES ON COMPILER DESIGN P a g e 2

CST-402(T): Language Processors

Compiler phases. Non-tokens

KALASALINGAM UNIVERSITY ANAND NAGAR, KRISHNAN KOIL DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING ODD SEMESTER COURSE PLAN

CS110/CS119 Introduction to Computing (Java) Bob Wilson S-3-176

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM

Online Editor for Compiling and Executing Different Languages Source Code

COMP 3002: Compiler Construction. Pat Morin School of Computer Science

JAVA SYLLABUS FOR 6 MONTHS

MPLEMENTATION OF DIGITAL LIBRARY USING HDFS AND SOLR

LEXIMET: A Lexical Analyzer Generator including McCabe's Metrics.

Compiler Construction Lecture 1: Introduction Winter Semester 2018/19 Thomas Noll Software Modeling and Verification Group RWTH Aachen University

MANIPAL INSTITUTE OF TECHNOLOGY (Constituent Institute of MANIPAL University) MANIPAL

Lexical Scanning COMP360

Compiler Theory Introduction and Course Outline Sandro Spina Department of Computer Science

Design and Implementation of Page Replacement Algorithms based on an Inverted Page Table

Organization of User Interface Software

CS Systems Qualifying Exam 2014

Object-Oriented Software Construction (Prentice-Hall International Series In Computer Science) By Bertrand Meyer

Compiling Regular Expressions COMP360

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

AUTO GENERATION OF CODE AND TABLE TOOL

Compiler Design (40-414)

Graphical User Interfaces (GUIs)

Web Data Extraction and Generating Mashup

CPSC 411: Introduction to Compiler Construction

Error Recovery during Top-Down Parsing: Acceptable-sets derived from continuation

Engineering. discovery. Discovery Engineering REVIEWS COMPUTER ENGINEERING. Lexical analysis - a brief study

Compiler Design. Computer Science & Information Technology (CS) Rank under AIR 100

Contents Introduction 1

AN OPTIMIZED TEXT STEGANOGRAPHY APPROACH USING DIFFERENTLY SPELT ENGLISH WORDS

Equation Editor Applet with TeX Output for the Web E M I L K A C H K Y M B A E V

Component-based Development of Software Language Engineering Tools

Compilers Crash Course

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN

Compiler Construction

Compiler Construction

Text Editor with Database Interface

SERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

Programming Language Processor Theory

Compiler Construction 1. Introduction. Oscar Nierstrasz

Compiler Construction

Formal Languages and Compilers Lecture I: Introduction to Compilers

A Modified Radix2, Radix4 Algorithms and Modified Adder for Parallel Multiplication


Comparative Study of Static and Interactive VisualizationApproaches

Chapter 2. Operating-System Structures

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY

Lecture 2 Operating System Structures (chapter 2)

Ghassan Samara Internet Technology Department Zarqa University, Jordan.

Prentice Hall CBT Systems X In A Box IT Courses

WIRED - World Wide Web Interactive Remote Event Display 1

CL_55244 JavaScript for Developers

Chapter 2 Operating-System Structures

Recursive Descent Parsers

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

CS420: Operating Systems. OS Services & System Calls

AUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division

Language Processing note 12 CS

Extreme Java G Session 5 - Main Theme Java Core Technologies (Part III) Dr. Jean-Claude Franchitti

XML Based Layout Managers

Parallel Execution of Tasks of Lexical Analyzer using OpenMP on Multi-core Machine

Single-pass Static Semantic Check for Efficient Translation in YAPL

Compilers. Pierre Geurts

e t An Analysis of Compiler Design in Context of Lexical Analyzer

FOR BEGINNERS 3 MONTHS

Compiler Construction 1. Introduction. Oscar Nierstrasz

understanding recursive data types, recursive functions to compute over them, and structural induction to prove things about them

Classifying Twitter Data in Multiple Classes Based On Sentiment Class Labels

Semantic Analysis. Lecture 9. February 7, 2018

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

Implementation of F# language support in JetBrains Rider IDE

Pioneering Compiler Design

Software Tools. Scott Klemmer Autumn 2009

Electricity Bill Management System

Legacy Systems and Web Services 1

I R TECHNICAL RESEARCH REPORT. An XML-Based Approach to Integrating Semiconductor Process Information. by Jing Chen, Raymond A. Adomaitis TR

Compilers for Modern Architectures Course Syllabus, Spring 2015

CS 132 Compiler Construction, Fall 2012 Instructor: Jens Palsberg Multiple Choice Exam, Nov 6, 2012

Compiler Construction

Theory of Programming Languages COMP360

Transcription:

A Java Based 4th Generation Multi-Targeted User Interface Compiler (JUICE) Amruta Mukund Talathi Department of Information Technology Engineering Satara College of Engineerng and Management, Satara, Maharashtra, India Sarita V. Balshetwar Department of Information Technology Engineering Satara College of Engineerng and Management, Satara, Maharashtra, India Dhiraj Vijay Motghare TCS Pune, Maharashtra, India Abstract- Today designing a good GUI in a widely acceptable language is not an easy task. We plan to design a simple user language with easy to understand constructs for designing a user interface. But of course the user will not like only the GUI to be in a language other than the language in which he is developing an application. To overcome this issue we plan to implement a compiler, to be written in Java, which will combine this new language to a target language such as Java. Thus a user will get the code for the GUI he is designing in a high level language. We also plan to provide an IDE for writing the new language and for compiling it to the target language. The system consists of a compiler for compiling and translating JUICE SCRIPT into specified target language, which may be Java Swing, Java AWT, XUL or HTML. The system must be expandable for inclusion of new languages also. An IDE for developing the JUICE SCRIPT is to be provided for easier development of the JUICE SCRIPT. Keywords JUICE, Multitargeted compiler,javacc,xul I. INTRODUCTION To work with a system, the users need to be able to control the system and access the state of the system. User can interact with system with the help of graphical user interfaces (GUI) which accept input via devices such as computer keyboard and mouse and provide graphical output on the computer monitor. The graphical user interface is a computer interface that uses graphic icons and controls in addition to text. The user of the computer utilizes a pointing device, like a mouse, to manipulate these icons and controls. This is considerably different from the command line interface (CLI) in which the user types a series of text commands to the computer. Today designing a good GUI in a widely acceptable language is not an easy task. Our system consists of a compiler for compiling and translating JUICE script into specified target language, which are Java Swing, Java AWT, XUL or HTML.[1] The system must be expandable for inclusion of new languages also. An IDE for developing the JUICE script is to be provided for easier development of the JUICE script. II. PROPOSED ALGORITHM Step1- The user has to open the IDE provided. Step2- The user has to write input script and save the file with.mgk extension. Step3- The file is passed as an input to the parser. Step4- The parser parse s the tokens one by one and pass it to switching mechanism. Step5-The user has to select the target through command switch. Step6-The tokens and command switch is passed as an input to the switching mechanism. Step7-Switching mechanism generates the class file name by formula:-command switch + token + Data type. Step8- According to the command switch selected the class will be passed towards the Code Generator. Step9- In the code generator the component will be selected as per the class name generated by the switching mechanism. Vol. 3 Issue 1 October 2013 86 ISSN: 2319 1058

Step10- As per the sub tokens generated by the parser the methods in the component are selected. Step11-The methods invoked will write the GUI code in the output file. Step12- The output file is compiled to get the GUI in desired language. SYSTEM WORKING III. SYSTEM WORKING,EXPERIMENT AND RESULT All the code for this system is segregated into different Class files. An IDE is developed where user can enter code in JUICE script and choose an option for target language. The compiler has been implemented using JavaCC parser generator. It detects all the tokens described in JUICE Script. It also checks for parsing errors. Each GUI designing language has some common GUI components. For each component class files are created. All the Classes pertaining to a given target language are similar to Classes of other target language. The compiler takes input file with.juc extension and converts it to target language based on the switch entered. It references the class related to a token for a given target language by adding the switch for language before the common class name for that token. For example, on getting token button and switch AWT the class referenced is AWTButtonDataType. Then a call is made to a function written in the referenced class based on which property or event is mentioned for that control. The code for the same is written in the output file by the called function. This Design Strategy makes JUICE scalable i.e. adding new language is easier. Error detection and Maintenance is also easier. Vol. 3 Issue 1 October 2013 87 ISSN: 2319 1058

fig. system working JUICE Editor look like this: IV. EXPERIMENT AND RESULT Vol. 3 Issue 1 October 2013 88 ISSN: 2319 1058

fig.juice EDITOR COMPILE AND RUN JUICE SCRIPT FOR AWT :- 1.JUICE Editor 2.MenuBar 3.Menu Fig(B) OUTPUT OF JUICE SCRIPT FOR AWT:- Vol. 3 Issue 1 October 2013 89 ISSN: 2319 1058

Fig(C) Figure (C) shows following points: 1] Shows JUICE code. 2] Shows Compiling and Running converted AWT code. 3] Shows converted AWT code. V.CONCLUSION This paper shows that JUICE is a rapidly evolving area of research and development. We discussed only the key problems in this area and presented some known solutions. One key research problem that we still face today is the development of truly easy, less complex, and time saving techniques for generating GUI in different languages. REFERENCES [1] https://javacc.dev.java.net/ [2] http://www.scifac.ru.ac.za/compilers/conts.html [3] http://java.sun.com/products/jfc/download.html [4] http://download-llnw.oracle.com/javase/1.4.2/docs/api/java/awt/package-summary.html [5] https://developer.mozilla.org/en/introduction_to_xul. [6] http://download.oracle.com/javase/tutorial/reflect/index.html [7] http://java.net: JavaCC [tm]: Grammar Files [8] Alfred Aho and Jeffrey D. Ullman,(1986) Compilers: Principles of Compiler Design. [9] Advance programming in java NIIT, Prentice Hall of India, ISBN-81-203-2415-3 [10] Raphael A. Finkel, Advanced Programming Language Design. [11] Andrew Appel, Jens Palsberg: Modern Compiler Implementation in Java. Cambridge University Press, 2nd edition, 2003. [12] Software engineering. [13] Benjamin Michotte, Jean Vanderdonckt, GrafiXML,AMultitarget User Interface Builder based on UsiXML. Vol. 3 Issue 1 October 2013 90 ISSN: 2319 1058