"Pinguim" is an initiative by PET Computação, originating in 2021, dedicated to crafting efficient simulators for the Register Machine, Lambda calculus, and the Turing machine, essential components of the INF05501 course instructed by Professor Rodrigo Machado at UFRGS. Collaborating with Professor Rodrigo, the group successfully developed an efficient simulator for the Register Machine before transitioning to other projects. You can check the new simulator here.
In 2024, other members of PET Computação decided to work on Pinguim again, but this time focusing in creating the Turing machine simulator. This project is a web application that compiles Rust code to WebAssembly for high-performance computing in the browser, while utilizing React for front-end development; and it's still in development.
To build the package, additional to Rust, we need a library called wasm-pack
cargo install wasm-pack
After cloning the project, ensure dependencies are up to date. If not up to date, then:
npm install
Afterwards, build it using:
npm run build:wasm
Now, you are ready to run the development server
npm start
This projects utilizes two main folders
src
turing-wasm
|_ lib.rs
|_ turing.rs
Contains all files used for front-end development
This folder contains all files regarding the library turing-wasm, which represents the back-end of the project.
Contains source code that uses wasm-bindgen
to export Rust functions to JavaScript
Contains source code for the Turing machine simulator