openpatch / openpatch/bitflow

[Task] Turning Maschine

Abierto
#178 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

enhancement
Lenguaje dominante
TypeScript
Estrellas
44
Forks
4
Merge medio
7 min
PR fusionados (30 d)
2

Descripción

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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

El issue no menciona archivos, pruebas ni puntos de entrada. Empieza revisando la estructura del repositorio y los patrones existentes de evaluación y GUI, y después aclara el alcance del editor, el intérprete, la visualización y la comprobación automática. Darlo por terminado requeriría un diseño acordado y la implementación de las tareas seleccionadas de máquinas de Turing.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
nextjs, react, typescript
Área
compilers, frontend
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
20/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.