[Task] Turning Maschine
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 44
- Fork
- 4
- Merge medio
- 7m
- PR unite (30g)
- 2
Descrizione
There are at least two tasks which we could implement for Turning Machines (automatic machine).
- We could show the definition of a Turning Machine and a user must fill the band.
- 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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
L'issue non indica file, test o punti di ingresso. Inizia esaminando la struttura del repository e i pattern esistenti per assessment e GUI, quindi chiarisci l'ambito dell'editor, dell'interprete, della visualizzazione e del controllo automatico. Per considerare concluso il lavoro sarebbero necessari un design concordato e l'implementazione delle attività selezionate sulle macchine di Turing.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- nextjs, react, typescript
- Ambito
- compilers, frontend
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 20/100