Git Product home page Git Product logo

norma-lab's Introduction

This is a Norma-Machine simulator and visualizer designed to make easier learning about this Machine and Register Machine em general.

Norma Machine is a register machine proposed by Richard Bird in his book Programs and Machines: An Introduction to the Theory of Computation in 1976, this machine was disseminated in the study of theory of computation and is currently widely used by Brazilian universities for the study of this content. This machine works by manipulating the values stored in the registers through commands to increment or decrement the value and also allows making conditional flow deviation according to the registers.

Suggestions and bug reports are welcomed in issue.

For more info on the machine, please see the manual.

Live Demo

How to run localy

  1. Clone the repo.
  2. cd into repo
  3. Install nvm, close and reopen terminal after install.
  4. Run
nvm install --lts
  1. To verify install run
node -v
// should output something similar to
v16.13.0
  1. This monorepo uses yarn workspaces under the hood. Install yarn by running
npm i -g yarn
  1. Install rustup + rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
// follow installation prompts, close and reopen terminal after install.
  1. Install wasm-pack
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
  1. If in Ubuntu or similar, you need to install a CC linker (you might already have it if you've run sudo apt-get update before), run
sudo apt-get update
sudo apt install build-essential
  1. Yarn needs rust to be built at least once so it can cross reference dependencies in the monorepo. Run in the packages/rust directory
cd packages/rust
# build WebAssembly and Javascript wrappers using wasm-pack
# don't panic, this might take a few seconds
wasm-pack build --target web
# Then initialize yarn in the rust directory
yarn
# go back to the monorepo root directory
cd ../..
  1. Install node dependencies, run
yarn
  1. Install cargo watch
cargo install cargo-watch
  1. To start the development server, run
yarn dev

norma-lab's People

Contributors

gabrielbfern avatar

Watchers

 avatar

Forkers

joaovperin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.