Giter VIP home page Giter VIP logo

symbolicautomata's Introduction

A symbolic automata library

This efficient automata library allows you to represent large (or infinite) alphabets succinctly.

Symbolic automata

In a symbolic automaton transitions carry predicates instead of concrete symbols. This allows you to represent large characters sets like UTF. For example a transition 0-[a-z]->1 represents a transition for going from state 0 to state 1 with every symbol in the interval [a-z].

You can read more about symbolic automata here: http://pages.cs.wisc.edu/~loris/symbolicautomata.html

The library

The library supports:

  • Symbolic automata and all their algorithms (intersection, equivalence, minimization, etc.)
  • Symbolic visibly pushdown automata and all their algorithms
  • Symbolic streaming string transducers
  • Symbolic finite transducer (You can read more about SFT here: https://www.doc.ic.ac.uk/~livshits/papers/pdf/popl12.pdf)
  • The character theory of intervals

Before installing

Use the following instructions if you want to run the benchmarks from https://github.com/lorisdanto/automatark

After cloning run:

  • git submodule init
  • git submodule update

Instructions with Eclipse

Requirements: Java SE >= 1.8

The easiest way to use the libraries and build them is to open them in Eclipse. You need to use a recent version of Eclipse (> Mars) otherwise you might see some problems. Import all the libraries in Eclipse as existing maven projects (Right click, import, existing maven projects). Right click on each project -> Maven -> Update project.

The main library resides in the project SVPALib. The character theory of interval resides in the project BooleanAlgebras. To see usage examples of the library check the project TestSVPA.

Instructions from command line

Requirements:

  1. Java SE >= 1.8
  2. Apache Maven >= 3.2.1

If you have insatlled automatark just run "mvn clean install" in the symbolicautomata directory. If you haven't done so run "mvn clean install -pl "SVPAlib, TestSVPA" " to only install the library and the test cases.

symbolicautomata's People

Contributors

arjunradhakrishna avatar benjamincaulfield avatar lorisdanto avatar matteo-sammartino avatar orionxu avatar pohmann avatar qinheping avatar shxuy avatar stjacks avatar terry27 avatar tiferrei avatar zkincaid avatar

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.