Máquina abstracta: flujo de datos en computadoras digitales conceptuales

2/21
Recursos

Aportes 34

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Woooo la máquina abstracta, no la recordaba, este concepto fue mi acompañante al aprender programación jaja.
.
Básicamente esta es la idea:
.
Tienes dentro de tu memoria todos los datos y programas que tú vas a usar, recuerda que en la memoria es donde se guardan cosas, así que ahí guardamos datos y programas. Pero no sirve de nada tenerlos ahí guardados, necesitas hacer algo con ellos y es ahí donde entra el intérprete.
.
El intérprete es el que empezará a interpretar (valga la redundancia) los datos, y para ello, tiene un controlador de secuencia, que es básicamente el que te dice qué instrucciones va después de cuál, básicamente la secuencia de ejecución del programa.
.
El controlador de datos es, como su nombre lo dice, el que controla los datos con el que va a trabajar el programa, sea cualquier tipo de dato primitivo, este se encargará de él.
.
El manejador de memoria se encarga de administrar en qué parte de la memoria se guardarán dichos datos, todo debe ser guardado en algún lugar, para eso es la memoria, y el manejador de memoria recuerda en dónde se guardaron dichos datos.
.
Y las operaciones son simplemente las cosas que tiene que ejecutar el programa uwu

Comparto aquí un video super interesante sobre maquinas de turing.

Las maquinas abstractas no necesariamente son digitales, y en realidad son los lenguajes los que se escriben sobre ellas (no al contrario).

Saludos!

Hola Platzinauta. 👩‍💻✨
te dejo los apuntes de esta lección para que nunca pares de aprender. 👇

Máquina abstracta

¿Qué es?

Computadora digital que ejecuta algoritmos los cuales están formalizados para que la maquina entienda.

Se trata de una maquina abstracta porque estamos aislando las características de una computadora para llevarlas a este concepto. La estructura general de una maquina abstracta es que tiene una memoria donde almacena datos y sus programas, además tiene un interprete del lenguaje de programación que maneja las secuencias de control del programa, controla la transferencia de datos y además maneja su memoria. Para realizar operaciones que nos darán un resultado que será la instrucción que deseamos y lo que resulta de estas instrucciones.

Puede realizar operaciones para:

  • Procesar datos primitivos: Un dato primitivo es aquél con el que un lenguaje de programación trabaja de forma nativa. Puede tener datos primitivos de tipo entero, flotante, booleanos, etc. Los datos primitivos de un lenguaje, no son necesariamente primitivos en otro.
  • Controlar secuencia de ejecución de operaciones: La maquina abstracta no solo será capaz de llevar la secuencia de operaciones, también estructuras de control y condicionales como If, Else. Podrá usar ciclos como el bucle While, etc.
  • Controla transferencia de datos: Manejará una transferencia de datos. Quiere decir que la información puede pasar de las instrucciones a una estructura de dato y viceversa. Con tal de que la información pueda ser utilizada para sus procesamientos.
  • Manejo de memoria: Es capaz de manejar la memoria, haciendo uso de este recurso para almacenar los datos que se derivan de las operaciones de los programas o incluso, almacenar información que le indiquemos.

Ciclo de ejecución

Al ser algo conceptual tanto su estructura como ciclo de ejecución, es el mismo para todas.

Primero inicia el programa, se traen las instrucciones a través del intérprete del lenguaje, el cual las decodifica, trae sus operandos y elige que operación ejecutará. Si la operación 1,2,3 o 4. O incluso puede ser el caso en el que se fuerza a detener la ejecución del programa. Si se elije una operación que lleva más procedimientos, esto traerá resultados, los cuales se almacenan en la memoria de la maquina y se vuelve a repetir el ciclo.

La maquina de Turing:

Es un ejemplo de maquina abstracta, han existido muchas replicas y la maquina de Turing lo que hace, es que tiene 2 cintas en cada lado y en el centro tiene un dispositivo lecto escritor, es capaz de leer o escribir sobre él mismo, en los rodillos hay instrucciones, indicadas con números 1 y 0. Puede indicar que escriba, lea, etc. En un punto profundo, podemos entender que la maquina de Turing, realiza los procesos que vimos antes.

Ciclo de ejecución:

  1. Inicia el programa.
  2. Se traen las instrucciones a través del intérprete del lenguaje de programación.
  3. Las decodifica.
  4. Trae sus operandos para realizar las operaciones.
  5. Elije que operación va a ejecutar según las instrucciones.
  6. Ejecuta las operaciones indicadas. Una o varias. Incluso la instrucción detener el programa.
  7. Si se ejecuta detener, el programa se termina. En caso contrario, se guardan los resultados y se regresa al segundo paso.

En la película Codigo Enigma habla sobre Alan Turing y como creo la maquina de Turing.

Les comparto este video muy interesante y cortito que habla de la maquina de Turing.
https://www.youtube.com/watch?v=iaXLDz_UeYY

💻 Una maquina abstracta permite ejecutar algoritmos.

Entrada → Proceso → Salida

Maquina abstracta

  • Computadora digital que ejecuta algoritmos
  • Los algoritmos están diseñados para ser entendidos por la máquina

4 misiones principales

  • Procesa datos primitivos (int, float, boolean)
  • Controla secuencia de ejecución de operaciones (condicionales, ciclos, etc.)
  • Controlar la transferencia de datos
  • Maneja la memoria

Ciclo de ejecución

  • Inicia el programa
  • Trae la instrucción
  • La decodifica
  • Trae operandos
  • Elige la(s) operación(es) o detener el programa
  • Almacena el resultado
  • Repite el ciclo

la Máquina de Turing

4 principales operaciones básicas que realiza una máquina abstracta.

Gracias a la película Código Enigma o Imitation game, me entere que la maquina de Turing realmente existió y ayudo a descifrar el código Nazi de las maquinas enigma evitando millones de muertes y adelantando el final de la segunda guerra.

No sabía que esto se llamaba así, qué interesante. Lo básico de lo básico.

Partes de un trabajo que hice para la universidad acerca de la maquina de turing:

MT: Máquina de Turing


Honestamente creo que no queda claro cual fue la idea pedagógica o de cualquier índole para presentar este concepto y cuál es la necesidad de "abstraer" la maquina. No se puede simplemente explicar los pasos que sigue una computadora real, entiéndase no abstracta, sin traer términos adicionales? Pareciera como que solo se siguen recetas de cocina para explicar los temas de la misma manera en que siempre se han explicado. Por lo visto es un concepto que ya ha sido usado por años y estoy seguro que de ser así sus razones de existir para la enseñanza tendrá. Pero, creo que en este video en particular no queda clara la razón para usar ese concepto.

¿Por qué son importantes los paradigmas en los lenguajes de programación?

Son muy amplios y se abren a la discusión, cambian la forma de ver la programación, cambian la forma en cómo programamos.

Operando: Se refiere a las variables o constantes declaradas en el programa.

🖥️Máquina abstracta🖥️

En palabras sencillas, no es mas que un modelo teórico de un sistema de computadora, ya sea para Software o Hardware, en el que se abstraen los procesos computacionales que realiza una maquina para resolver operaciones. Es una forma conceptual de entender su funcionamiento. Estos procesos son:

  • Procesar datos primitivos
  • Controlar la secuencia de ejecución de las instrucciones
  • Controlar la transferencia de datos
  • Manejo de memoria

Máquina Abstracta


Es el concepto más básico del cuál provienen las computadoras modernas, se llama abstracción porque nos deshacemos de todo el software y el hardware, y sólo conservamos las operaciones más básicas que hacen que una máquina funcione. 💻

Se asemejan a una función en matemáticas, donde tenemos datos de entrada, hacemos operaciones específicas, y obtenemos un resultado. ➕➖✖➗

Éste concepto se entiende como algo teórico, ya que no es una máquina en específico, sólo eso, un concepto. Que después puede ser trasladado a software o hardware y puede servir para múltiples propósitos. La máquina abstracta es el corazón de la ciencia de la computación como disciplina. 😎



Abstract Machine
What is an abstract machine?

La máquina abstracta hace referencia a una computadora digital donde se ejecutan algoritmos que la máquina pueda entender usando un lenguaje de programación. Para esto se vio en el video la estructura general de la maquina abstracta y se hablo de la máquina de turing… Si quieren aprenderlo véanse el videito, el cual es bastante interesante

🤖💻🤖
Tienes dentro de tu memoria todos los datos y programas que tú vas a usar, en la memoria es donde se guardan cosas, así que ahí guardamos datos y programas. Pero no sirve de nada tenerlos ahí guardados, necesitas hacer algo con ellos y es ahí donde entra el intérprete.
.
El intérprete es el que empezará a interpretar (valga la redundancia) los datos, y para ello, tiene un controlador de secuencia, que es básicamente el que te dice qué instrucciones va después de cuál, básicamente la secuencia de ejecución del programa.
.
El controlador de datos es, como su nombre lo dice, el que controla los datos con el que va a trabajar el programa, sea cualquier tipo de dato primitivo, este se encargará de él.
.
El manejador de memoria se encarga de administrar en qué parte de la memoria se guardarán dichos datos, todo debe ser guardado en algún lugar, para eso es la memoria, y el manejador de memoria recuerda en dónde se guardaron dichos datos.
.
Y las operaciones son simplemente las cosas que tiene que ejecutar el programa.
💚

Máquna abstracta:

Esta computadora recibe algoritmos para realizar instrucciones en un Lenguaje de Programación (el que tu desees) utilizando tipos de datos y estructuras de datos (los que tu desees).

Las maquinas abstrata trabaja con un lenguaje de programacion

Maquina Abstraca:
“Computadora digital que ejecuta algoritmos los cuales están formalizados para que la maquina entienda”
*Procesa dato primitivos
*Controla secuencia de ejecución
*Controla transferencia de datos
*Manejo de memoria(almacenamiento de datos de cualquier tipo)

No conocía nada de esto, es nuevo para mi!

Este concepto me evoca mucho al concepto de funciones y al input output. Donde tenemos unos datos de entrada, luego una maquinita, o especie de caja donde determinar que operaciones ejercutar con esos datos, y por ultimo los datos de salida, el resultado que deseamos obtener.

interesante

Excelente saber las bases de la informática, a veces hago las cosas sin saber lo que hay detrás de ellas.

Muy interesante!

Máquina de Turing.

Ciclo de ejecución.

Estructura general de una máquina abstracta.

Qué es una máquina abstracta.