top of page

Prolan

 
Learn theoretical computer science by playing and coding!

 

Design and simulate different kinds of formal grammars and automatons by Prolan:

  • Formal Grammars

  • Programmed Grammars

  • Lindenmayer Systems

  • Matrix Grammars

  • Regular Expressions

  • [Non-deterministic] Finite Automatons

  • [Non-deterministic] Pushdown Automatons

  • [Non-deterministic] Turing Machines

 

Playing around a model with Prolan gives you a first hand experience about the working principles of these math structures, rather than just modelling them on paper. For example, to design a formal grammar, just fill in a form with symbols and grammar rules. Prolan calculates the generated language, and displays possible derivations in different, interactive ways:

Setup a grammar or automaton
Generate the math structure
Browse the generated language and derivations

For controlled grammars and automatons, you can use an easy C like language. It's much more convenient to write a tiny script with conditionals, loops and macros, than directly describe state transition functions. Prolan takes your code, translates it to an accurate mathematical description, then "run it". The result of the "run" will be the derivations and the generated (or accepted, decided) language, so you can instantly verify your design, what would be pretty hard manually.

 

Prolan contains a tutorial and a lot of examples.
 

About the project: I've created Prolan as my BSc thesis in 2010, with ulterior motives to help IT students learning theoretical computer science. Recently I translated the UI and the sample files to English, but the full documentation remained in Hungarian. There are some known bugs and a lot of to do's. I've published the source code under GPL license on Github.

author:

Sebestyén Balázs

bottom of page