openpatch / openpatch/bitflow

[Task] Turning Maschine

Aperta
#178 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement
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).

  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.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. 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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.