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

2/21
Recursos
Transcripción

Una máquina abstracta es una computadora digital que ejecuta algoritmos, los cuales están formalizados para que la máquina entienda. Se trata de una máquina abstracta porque estamos aislando las características de una computadora para llevarlas a este concepto.

Estructura de una máquina abstracta

La estructura general de una máquina abstracta consiste en:

  • Una memoria donde almacena datos y sus programas.
  • Un intérprete del lenguaje de programación que maneja las secuencias de control del programa, controla la transferencia de datos y además maneja su memoria.
  • Unas operaciones que nos darán un resultado que será la instrucción que deseamos.
    Estructura de una máquina abstracta

Operaciones de una máquina abstracta

Una máquina abstracta puede realizar operaciones para:

  • Procesar datos primitivos: Un dato primitivo es aquel con el que un lenguaje de programación trabaja de forma nativa. Puede tener datos primitivos de tipo entero, flotante, booleanos, etc. Ojo, los datos primitivos de un lenguaje, no son necesariamente primitivos en otro.
  • Controlar secuencia de ejecución de operaciones: La máquina 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 While, For, etc.
  • Controla transferencia de datos: Esto 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: La máquina abstracta usa 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

El ciclo de ejecución se refiere a los pasos que toma una máquina abstracta para ejecutar operaciones.

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

Máquina de Turing:

Es un ejemplo de máquina abstracta. La Máquina de Turing tiene 2 cintas en cada lado, y en el centro tiene un dispositivo lector-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 sentido abstracto, podemos entender que la maquina de Turing realiza los procesos que vimos antes.

Conclusión

La máquina abstracta es un concepto que nos ayuda a entender como funcionan las computadoras y los lenguajes de programación en general. Una máquina abstracta es capaz de realizar operaciones complejas si la equipamos para ello.

Contribución creada por: Ciro Villafraz, con los aportes de Iris Valentina Barrios y Carlos José González Juan.

Aportes 51

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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

Entrada → Proceso → Salida

💻 Una maquina abstracta permite ejecutar algoritmos.

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

MT: Máquina de Turing


la Máquina de Turing

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

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.

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

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?

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

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

Dejo video:

Para aquellos que no les quedo muy claro lo de la Maquina de Turing o las maquinas abstractas, les digo que no se hagan tanto problema, esto se entiende mejor con la Teoría de Autómatas porque es así principalmente como trabaja por detrás todo esto (lo cual también es mas complejo). Por otro lado, por ahora lo mejor es que tengan en mente la explicación que da el profe Héctor Vega, porque se enfoca en lo mas importante y esencial del tema. Saludos!

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.

Hola, la secuencia de control del programa de una máquina abstracta se refiere a cómo la máquina ejecuta instrucciones paso a paso. [En una máquina abstracta, el dispositivo de control recoge una instrucción desde la memoria, interpreta su significado, trae los datos necesarios desde la memoria al órgano de cálculo, instruye al mismo realizar la operación y luego almacena el resultado](https://bing.com/search?q=secuencia+de+control+del+programa+de+una+m%c3%a1quina+abstracta). Esto implica que la máquina 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 While, For, etc](https://bing.com/search?q=secuencia+de+control+del+programa+de+una+m%c3%a1quina+abstracta). [Las máquinas abstractas son “máquinas” porque permiten la ejecución paso a paso de los programas; son “abstractos” porque ignoran muchos aspectos de las máquinas reales (hardware)](https://academia-lab.com/enciclopedia/maquina-abstracta/).

Una máquina de Turing es una máquina abstracta porque puede hacer el ciclo de ejecución descrito en la clase:

  • Inicio: La máquina comienza en un estado inicial.
  • Traer la siguiente instrucción: El cabezal de lectura/escritura lee el símbolo en la celda actual de la cinta.
  • Decodificar: La máquina consulta la tabla de transición para determinar su siguiente acción.
  • Elegir: La máquina realiza su acción, que puede ser una de las siguientes:
    • Escribir un símbolo en la cinta.
    • Mover el cabezal de lectura/escritura a la izquierda o a la derecha.
    • Cambiar al siguiente estado.
  • La máquina repite los pasos anteriores hasta que se cumpla alguna condición de parada.
  • La memoria es la cinta de la máquina que se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer símbolos.

Fuente: Bard y Wikipedia

La Máquina Abstracta

.
Una máquina abstracta es un concepto usado en la informática que nos permite entender de manera simple, sin conocimientos exactos del hardware o el software sobre como funcionan los procesos internos en estas máquinas.
.
La estructura general de estas máquinas es que tiene lo siguiente:
.
Memoria: Donde almacena los datos necesarios para que funcione el algoritmo y los programas de esta misma (como el sistema operativo o las aplicaciones instaladas).
.
Intérprete: Donde se lleva un control de los datos por medio de estructuras de control o el manejo de la memoria.
.
**Operaciones: ** El manejo de la información en sí, estas operaciones nos permitirán transformar los datos en información útil o la información necesaria.
.

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

Es interesante la forma en que se usa esta maquina abstracta. Jamas imagine que seria la herramienta necesaria para que mejore el aprendizaje al usar los lenguajes de programacion.

Mis apuntes de esta clase

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

¿Qué es?

Computadora digital que ejecuta algoritmos los cuales están formalizados para que la máquina lo entienda.

Las operaciones que puede realizar la máquina son:

  • Procesar datos primitivos: Tipos de datos en los cuales el lenguaje puede trabajar de forma primitiva, tales como Enteros, Caracter o Boleanos.
  • Controlar la secuencia de ejecución de operaciones: Va a ser capaz de tener una secuencia y tener estructuras de control y condicionales.
  • Controlar la transferencia de datos: La información puede pasar de instrucciones a estructuras de datos y viceversa.
  • Manejo de memoria: Haciendo uso de este recurso puede almacenar los datos de los programas.

Interesante no había visto la máquina de Turing y como inicia el concepto abstracto.

Recuerdo haber leido que la Máquina de Turing es cociderado el abuelo de los editores de codigo para programar modernos.
Como DEV C/C++, Atom o incluso Visual Studio Code, siendo el la cinta infinita el editor de texto donde ingresamos nuestro codigo.
El lector y escritor es el proceso de interpretción o compilación de nuestro codigo.
El proceo donde están las intrucciones en 1 y 0 es el proceo de pasar nuestro codigo a lenguaje maquina. En la que se traduce las instrucciónes de nuestro codigo a lenugaje maquina.

¿Qué es la máquina abstracta?, es una máquina que sirve como simplificación de un computador real, se le llama máquina abstracta porque no necesariamente tiene que ser electrónica ni ser una computadora, podría ser completamente mecánica (lo que sería muy cool y muy steam punk… yo me compraría una), y tiene las separaciones de los diferentes niveles de abstracción que debe tener una máquina.

Conclusión
La máquina abstracta es un concepto que nos ayuda a entender como funcionan las computadoras y los lenguajes de programación en general. Una máquina abstracta es capaz de realizar operaciones complejas si la equipamos para ello.

Descubrir la abstracción es un proceso que ha estado presente desde el comienzo del desarrollo de lenguajes de programación. Esta abstracción nos permite representar conceptos complejos con elementos más simples de tal forma que podamos manipularlos de una manera más sencilla. Esto nos ayuda a crear código de una forma más rápida y eficiente.

Por otro lado, también existen lenguajes que nos permiten crear abstracciones para representar conceptos complejos. Esto nos permite crear herramientas más complejas que nos permitan manipular datos de una forma más sencilla. Esto nos ayuda a aumentar la productividad y a reducir los errores de programación.

Además, los lenguajes de programación también ofrecen paradigmas de programación, tales como la programación orientada a objetos, la programación funcional y la programación estructurada. Estos paradigmas nos permiten a los programadores escribir código de manera más intuitiva y coherente. Esto nos ayuda a construir programas más robustos, escalables y fáciles de mantener.

Maquina abstracta

Concepto

Hablamos de maquina abstracta cuando nos referimos a una computadora capaz de ejecutar ciertos algoritmos en cierto lenguaje de programación.

Estructura

  • La maquina abstracta cuenta con su memoria, la cual contiene a los datos y sus programas.
  • Tambien posee un interprete, el cual se encarga de manejar memoria y controlar datos.
  • Gracias a la suma de la memoria y el interprete podemos dar como resultado a las operaciones que deseamos realizar

Maquina de Turing

Un ejemplo de maquina abstracta es la maquina de Turing. La cual posee 2 cintas que se juntan en un dispositivo intermedio lecto-escritor. En estas cintas se almacenan bits (0 y 1) que le dan intrucciones para girar a un sentido u otro a las cintas.

Interesante, cabe ahondar en el tema

Me parece muy interesante el robot.

MAQUINA ASTRACTA
.
El concepto de maquina abstracta se trata de una a nivel conceptual o teórico. Esta computadora recibe algoritmos para realizar instrucciones en un lenguaje de programación utilizando tipos de datos y estructuras de datos.
.
Una maquina abstracta puede realizar las 4 operaciones básicas
.

  • Procesar datos primitivos. (enteros, flotante, bolean, etc)
  • Control de secuencia de ejecución. (ciclos, condiciones, bucles, etc)
  • Control de transferencia de datos.
  • Manejo de memoria.

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

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.
💚

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.