DOC PREVIEW
UConn CSE 298/300 - Java Tool

This preview shows page 1-2-3-4-27-28-29-30-55-56-57-58 out of 58 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 58 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

With this in mind, a tool called the Java Compiler Compiler was located which creates parsers written in Java code from specified grammars. Using the grammar specified in [4], our main goal became to write a parser that would accept a file containing a single IOA, parse it, and produce a single Java class exhibiting its behavior. Although all of the IOA language could not be implemented in a single semester, it was felt that it was important for our tool to handle the general structure of an IOA. To do this, three main sections of a simple automaton were identified. The objective of this project would be to describe a mapping from each section to some Java code needed to be determined.IOA2Java ToolJoe Balthazar, Jim Byrne, Christine Kenney, Ainsley NathanielComputer Science & Engineering DepartmentThe University of Connecticut191, Auditorium Road, U-155Storrs, CT 06269-3155{joetitus,kenney,ainsley}@cse.uconn.edu, [email protected] 04, 1999AbstractThis report presents a preliminary version of an IOA2Java tool. Input/Output Automata aretransition systems used for modeling components in asynchronous distributed systems. IOA is aformal definition language used for describing I/O automata in distributed algorithms. IOA canbe used for formally verifying the correctness of distributed algorithms. We attempt to create atool that converts IOA specification to Java code. This tool handles a system where there is oneI/O automaton and generates Java code for that automaton. In order to create a workingenvironment, we created a round-robin scheduler, which traces the actions of the I/O automatonas though it was in a distributed system. In a truly distributed system, the execution trace of aparticular automaton would be dependent upon its interactions with other automata. Possibleapproaches to solve composition of automata are also included. 11. IntroductionInput/Output automata [1] are state machines that have been used recently to describedistributed systems. Often referred to as I/O Automata, these automata can be described by theIOA language as explained in detail in [4]. This language has its own syntax, semantics, andgrammar and has been used as a basis for proving the correctness of distributed algorithms asdiscussed in [1]. In the recent past, work has been done, [3], to convert I/O automata written in the IOAlanguage for a specific application into working C code. If the automata can be proven torepresent a correct algorithm, this implementation presents the potential benefit of yielding moreaccurate code. This goal has motivated this group to spend this semester creating a tool similarto the one described above using Java, although on a much smaller scale.Our main goal this semester was to develop a tool written in Java that would convert asingle automaton into compilable Java code with the same functionality that would run on onemachine. Given that we had only a semester’s time to work on this application and since theIOA language is quite large when considered in its entirety, it was decided early on that our toolwould only provide the general framework for converting an IOA to Java code. It was expectedthat future students would extend this initial program to handle the more detailed IOA syntax.We felt that implementing this tool entirely in Java held several advantages. First, wewould end up with portable program that could be used on a number of platforms. Second, usingthis language would allow us to take advantage of some of the object-oriented constructsprovided by Java that other programming languages do not provide. Finally, it was thought thatthe many distributed technologies provided through the Java language could be used in futureversions of this tool when more advanced automata were considered. 2With this in mind, a tool called the Java Compiler Compiler was located which createsparsers written in Java code from specified grammars. Using the grammar specified in [4], ourmain goal became to write a parser that would accept a file containing a single IOA, parse it, andproduce a single Java class exhibiting its behavior. Although all of the IOA language could notbe implemented in a single semester, it was felt that it was important for our tool to handle thegeneral structure of an IOA. To do this, three main sections of a simple automaton wereidentified. The objective of this project would be to describe a mapping from each section tosome Java code needed to be determined. In order to create an environment in which the Java class describing the automaton couldrun, it was decided that a round robin scheduler needed to be created by this tool to actuallyexecute the actions in the automaton’s Java class. As a result, our next goal was to determinewhat this scheduler would look like and how the parser would generate it. If this could beaccomplished, combining the automaton class with its scheduler should result in an executableprogram with the automaton’s behavior.If time permitted, we wanted to consider how to incorporate composition into our tool.The ability to compose automata was considered an important part of the general framework ofan IOA in that it helps to implement distributed algorithms and encourages automata reusability.While discussions were held on this subject, an actual design and implementation was neveraccomplished.Aside from the implementation of composition, the rest of the objectives mentionedabove were achieved this semester. The remainder of this paper describes how these goals wereaccomplished and is organized as follows. Section 2 gives a brief introduction to the structure ofthe automata important for this implementation. Section 3 describes the actual creation of the3tool from the assumptions made to the use of JCC to the IOA-to-Java-class mapping to thedesign and implementation of the scheduler. Section 4 describes how to use our tool andindicates what work still needs to be done to create a complete IOA to Java converter.2. Background - Introduction to the I/O Automata Model:The I/O Automata model is a labeled transition system model for components inasynchronous concurrent systems. IOA is a formal language for defining I/O automata andstating their properties. These terms are used interchangeably as we explain the IOA2Java Tool.IOA can be used for describing


View Full Document

UConn CSE 298/300 - Java Tool

Documents in this Course
Load more
Download Java Tool
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Java Tool and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Java Tool 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?