https://github.com/micycle1/pflap
Processing Formal Languages and Automata Package
https://github.com/micycle1/pflap
automata automatons awt cp5 dfa dpa formal-languages machine p5 p5js processing processing-library processing-sketch pushdown-automaton swing
Last synced: about 1 month ago
JSON representation
Processing Formal Languages and Automata Package
- Host: GitHub
- URL: https://github.com/micycle1/pflap
- Owner: micycle1
- License: mit
- Created: 2018-05-20T15:10:03.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-05T20:07:35.000Z (almost 6 years ago)
- Last Synced: 2025-03-30T09:41:25.165Z (2 months ago)
- Topics: automata, automatons, awt, cp5, dfa, dpa, formal-languages, machine, p5, p5js, processing, processing-library, processing-sketch, pushdown-automaton, swing
- Language: Java
- Size: 4.01 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
PFLAPProcessing Formal Languages & Automata Package
---
**PFLAP** is an interactive graphical tool for constructing and simulating finite automata (machine representations of formal languages), and is my attempt to create a [JFLAP](http://www.jflap.org/) alternative with a more intuitive control scheme and a more pleasant aesthetic using the [Processing](https://processing.org/) library as the graphics backend. I do not intend to implement anywhere near the full functionality present in JFLAP (features such as recursively enumerable languages, transforming context-free languages, etc.).
## Latest Release
:inbox_tray: [PFLAP v.1.0](https://github.com/micycle1/PFLAP/releases)
## Features
* Create and run finite automatons (DFA, DPA, Mealy and Moore machines)
* _Instantaneous_ and _stepping_ simulation modes
* Export machine to .png
* Undo/Redo
* Save/Load
* Colour-customisation of all graphics## Screenshot
![]()
## Tasks
- [ ] Batch input for fast-run mode.
- [ ] State position snapping
- [ ] Implement Turning Machines## Libraries
- `processing` [github](https://github.com/processing/processing)
- `controlP5` [github](https://github.com/sojamo/controlp5)
- `dashedlines` [github](https://github.com/garciadelcastillo/-dashed-lines-for-processing-)
- `guava` [github](https://github.com/google/guava)
- `zoompan` [github](https://github.com/gicentre/gicentreutils)