Menu

Home

Dmitry Podgorny

FVM2 - F Virtual Machine v2

Common

FVM2 is VM for running machines like Markov algorithms, Turing machine and so on. FVM2 has debugger with step mode and breakpoints. Goal of this project is to help students with studying Theory of computation. FVM2 shows how complex code works within a real machine.

Currently the only implemented machine is Markov algorithms. Double click on machine in the list activates the machine.

There is machine specific section in the bottom of the window. Usually it contains memory of machine. For Markov algoritms it is possible to set/change memory before execution or while execution is in step mode. Every change to the text line immediately stores whole string to the machine's memory (you don't have to press enter).

Text area on the left of the window is for executing code. Text line below is for executing a single command while machine runs.

Breakpoints are set to the pointer of the text area. Breakpoint means that machine switches to the step mode before executing the marked command.

Markov algorithms

There are some special symbols or sequences in the "language":

Symbol Description
E is empty string. For example, "1->E" means that string "1" will be erased after execution. Current implementation assumes string "E" is equal to empty string. I.e. "1->E" and "1->" are equivalent.
-> is operator.
. is termination symbol. When it is the first symbol after operator -> machine recognizes command as the last. Symbol "." must appear only as the first symbol after "->".
# is just an ordinary symbol, but it is usually used as separator for variables. For example, if you want to set 3 variables x=1, y=2, z=3 to memory it can be done in the following way: "1#11#111". Of course how you set and recognize variables is the only your deal :-).

Examples of code are placed in examples/ directory inside tarballs. List of all examples with descriptions can be found at [Markov algorithm examples] page.

Pay attention! Some Markov algorithm programs operate with unary numbers.

  1. GitHub project page
  2. SourceForge project page

Related

Wiki: Markov algorithm examples

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.