openpatch / openpatch/bitflow

[Task] Turning Maschine

Open
#178 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
44
Forks
4
Avg merge
7m
Merged PRs (30d)
2

Description

There are at least two tasks which we could implement for Turning Machines (automatic machine).

  1. We could show the definition of a Turning Machine and a user must fill the band.
  2. We could show a little task and a user needs to define a Turing Machine.

In both cases, we need a GUI editor for Turning Machine definitions and an interpreter for Turning Machine definitions, so that a solution can automatically be checked.

I think a good visualization of an automatic-machine would be the one Turing used on page 234 in his paper 1. We should also use his terminology:

  • tape: The tape is one-dimensional and runs through the machine.
  • square: The tape is divided into squares. The machine can only operate on one square at a time. Each square can contain a symbol or be empty.
  • scanned symbol: This is the symbol, which is on the square, which is currently in the machine (aka. at the read/write head of the machine)
  • m-configuration: A m-configuration and the scanned symbol determines in which m-configuration the machine goes into next. This can also reference as the state of the machine.
  • m-function: A m-function is a generic m-configuration, which takes parameters to be reusable.
  • the configuration: The configuration of the machine is determined by the combination of the scanned symbol and its current m-configuration.
  • a-machine: An automatic machine is a machine where each stage of motion is completely determined by the configuration.
  • Circular machine: If a machine writes down a finite number of symbols, it is called circular.
  • Circle-free machine: If a machine writes down an infinite number of symbols, it is called circle-free.
  • Computable: A sequence is computable if it can be computed by a circle-free machine.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Start by reviewing the repository structure and existing assessment and GUI patterns, then clarify the editor, interpreter, visualization, and automatic-checking scope. Done would require an agreed design and implementation of the selected Turing-machine tasks.

Written by the indexing model from the issue text.

Assessment

Tech stack
nextjs, react, typescript
Domain
compilers, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.