Giter Club home page Giter Club logo

jaguar's Introduction

Java Automaton and Grammar User Application Resources (Jaguar)
(C) 2001 by Ivan Hernandez Serrano

========================================================================
1. Introduction
2. System requirements
3. Compiling the sources & running
4. Running the binary distribution
5. Using the Jaguar
6. Author
7. Contributors
========================================================================


1. Introduction


Jaguar is a Free Software tool written in Java (TM) for people in the
Computer Theory area.  Jaguar provides an infrastructure of libraries,
engines and graphical applications that support most of the models and
algorithms reviewed in a regular undergraduate computer theory
(automata and formal languages) course.

All the models of abstract machines covered by Jaguar have: (1) an
engine that reads an input string and answer whether the string is
accepted or not, (2) a GUI that provides a graphical representation,
(3) a set of controls that allows interactive manipulation of the
machine and the input strings.  The abstract machines covered are:

     + DFA -- deterministic finite automaton

     + NFA -- no deterministic finite automaton

     + PDA -- pushdown automaton (or SFA stack finite automaton)

     + Turing -- Turing machine

Jaguar also includes an implementation of grammars.  All grammars
share a common GUI, and there are three specializations:

     + Type 3 grammar.  This type of grammars receive an input string an
       and, if this string is generated by the grammar, then the GUI
       shows the derivation tree for that particular input.

     + Type 2 grammar, this type of grammars are used to work with
       well defined standardizer algorithms.  Type 2 lazy grammars are
       also supported, only these are less restrictive on their production
       forms and also are used with the standardizer algorithms.

Jaguar provides the following algorithms (which use the above defined
structures):

     + DFA minimization, minimize a given DFA into another
       equivalent, engine & GUI

     + NFA to DFA conversion, transformation of a given NFA into an
       equivalent DFA

     + Type 3 grammar into NFA conversion, transforms a given type
       3 grammar into an equivalent NFA.

     + DFA to Type 3 grammar  conversion, transforms a given
       NFA into an equivalent type 3 grammar.

     + Type 2 grammar standardization. Given a Free Context Grammar
       (a type 2 lazy grammar) we get his standardized version
       applying the algorithms to eliminate unreachable symbols, unary
       productions, epsilon productions, and finally Chomsky and
       Greibach Normal Form.


All the structures used are specified using xml-like syntax. See
section XX for examples.


1.1 Where do I get Jaguar?

You can get the Jaguar package and found more about it from:

        http://sourceforge.net/projects/ijaguar/


2. System requirements

In principle, you only need a Java2(TM) virtual machine (JVM) >=v1.4.0
with the Java Foundation Classes (JFC) -- usually the JFC are included
in the standard distribution of the major vendors. You can get your
favorite JVM, from the next sources:

  http://www.blackdown.org
  http://www.java.sun.com

If you just want to run Jaguar it's enough to have any Java 2 Runtime
Environment (JRE).  To compile the sources you will also need a java
compiler, also readily available.

This project was developed and tested using the Java 2 v1.4.2_06 from
java.sun.com. In the other hand the minimum hardware requirements
are the specified by the vendor of the JVM of your choice.

You need ant for compile the sources. The version of ant was 1.6.2.


3. Compiling the sources & running

Usually the sources will be delivered on a package such as:

    jaguar.x-yz.src.tbz2

you need follow the next steps.

   3.1 Extract the sources.

        tar yxvf jaguar.x-yz.src.tbz2

       the previos command will generate the directory

        jaguar.x-yz/

   3.2 Change to the jaguar.x-yz/ directory.

   3.4 Type `ant', and wait a few moments.

   3.5 Now you can execute Jaguar as in:

    ant jcenter

       and you should see the Jaguar Center.



4. Running the binary distribution

The binary distribution will be delivered on a jar file, so you only
need to execute the Jaguar in the next way

  java -jar jaguar-<version>.jar

(change <version> for your correct version) and you should see the Jaguar
Center.



5. Using the Jaguar

  For a quick HowTo use Jaguar see the file MANUAL in this same directory.


6. Author

Please send your comments, improvements, or suggestions to the following address:

  Ivan Hernández Serrano
  School of Sciencie, Universidad Nacional Autónoma de México
  [email protected]
  http://sourceforge.net/projects/ijaguar

You may ask for support to

Ivan Hernández
[email protected]

and

Ismael Hernndez González
[email protected]

both of us are the main developer team :)


7. Contributors

Special thanks to Ismael Hernández González
([email protected]) for his support and active
contributions to this project. I also want to thank to Fernanda Sánchez
Puig for her bug fixes and support using this material in her courses.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.