Skip to content

Latest commit

 

History

History
6 lines (4 loc) · 2.07 KB

abstract.md

File metadata and controls

6 lines (4 loc) · 2.07 KB

Abstract

The abstract idea of a graph is used ubiquitously in Computer Science and other related fields. Conceptually, it is a powerful utility for describing the behavior and properties of various algorithms and data structures. There exist tools that provide the ability to design and interpret visual representations of graphs; however, these tools are specifically tailored to a particular domain. Project Sinap is a Graph IDE that will provide a framework and UI application to help visualize, design, and control the structure and behavior of a graph for any domain. The IDE will have support for plugins that allow the IDE to recognize specific implementations of graphs, such as automata, artificial neural networks, and even circuit designs.

The IDE will initially be shipped with a Formal Language and Automata Package (FLAP). In general, users will be able to build graphs from scratch with the visual editor, modify the properties of the nodes and edges, run examples that traverse through the graph in a meaningful way as appropriately defined by the graph type, and view output generated by the graph. Support for stepping through the various states of the graph will be included as part of the IDE in order to give the user some intuition about the behavior of the graph as well as debug any problems that may be present in the structure of the graph.

The intended user base for this project will be students and educational faculty members but can also be used in the industry for prototyping and demonstrating simple graph architectures. The initial set of plugins, FLAP, will provide support for Finite State Automata, Pushdown Automata, Turing Machines, and other related machines. In addition to being able to design the various machines supported by the package, users will also be able to view conversion steps between certain graphs and formal grammars via the output view. Faculty can use the package to consolidate assignment submissions and streamline grading through batch processing that will display results showing the inputs and outputs of each graph as well as the expected output.