Skip to content

SadaqueKhan/pushdown-automata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pushdown Automata

Animated visual toolkit for pushdown automata. The centre of this project is the design and development of an animated visual simulator for pushdown automata, together with a GUI suitable for using the simulator as an educational tool for beginners. The suggested implementation language is JAVA or C++, but other high level languages would also be possible. A collection of good examples (preferably in XML format) should also be constructed.

Configuration

  1. Languages and frameworks
  2. Installation Instructions
  3. How to execute the program
  4. How to execute the tests

The app is built overall using the following:

  • Java, is a programming language that is used to produce this software.
  • Maven, is a software project management and comprehension tool used in this software.
  • JavaFX, is a software platform used to create and deliver this desktop application.
  • ControlsFX (version 8.40), is an open source project for JavaFX that aims to provide really high quality UI controls and other tools to complement the core JavaFX distribution used in this project.
  • Junit (version 4.12), is a unit testing framework for the Java programming language used to build this application.
  • TestFX, is a library for simple and clean testing of the JavaFX components used in this project.
  • Hamcrest, is a library of matchers, which can be combined to create flexible expressions of intent for the tests used in this project.

Prerequisites

You will need to have the following installed on your machine


WARNING

Please note if any of the modules in the current stable version of the program have become deprecated, the application may fail to execute. If this occurs please feel free to email me, so that I can update the program accordingly. If you wish to remedy this yourself, you will have to install a version of the module that isn't yet deprecated and adjust the current source code to meet the implementations of the non-deprecated module.


Disclaimer: MUST have the installed the prerequisites specified in the installation instructions for the commands below to work.

  1. Open the terminal
  2. Navigate to the program directory
  3. Run the commands below to either execute the program or create a JAR

Command to run the program

Option 1 -

Executable JAR is pre-configured with the program directory. Double-clicking the JAR is sufficient to run the program. May need to adjust security to allow installation of the program on specific operating systems. Steps in how to do this should be provided by the operating system.

Option 2 -

mvn clean compile

mvn exec:java -Dexec.mainClass="app.presenter.MainStagePresenter"

Command to create an executable JAR

mvn clean compile assembly:single

Note: This command takes control of your mouse for about 5 seconds to run the automated interface tests before creating the executable JAR, please wait until these are finished. The executable JAR will be created in the target directory which is within the program directory.

Disclaimer: MUST have the installed the prerequisites specified in the installation instructions for the command below to work.

  1. Open the terminal
  2. Navigate to the program directory
  3. Run the below command to execute the tests for the program

Command to run the tests

mvn test

User Guide

Creating state onto the state diagram.

Creating transition onto the state diagram.

Creating transitions onto the transition table.

Removing a state from the state diagram.

Removing a transition from the state diagram.

Dragging a state on the state diagram.

Changing the type of a state.

Changing acceptance mode of the machine.

Executing quick run simulation of a machine.

Executing step run simulation of a machine.

Saving a machine.

Loading a machine.