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.
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.
Inicia el programa.
Se traen las instrucciones a través del intérprete del lenguaje de programación, el cual decodifica las instrucciones.
Trae sus operandos para realizar las operaciones.
Elige que operación va a ejecutar según las instrucciones.
Ejecuta las operaciones indicadas. Una o varias. Incluso la instrucción detener el programa.
Si se ejecuta detener, el programa se termina. En caso contrario, se guardan los resultados y se regresa al segundo paso.
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 54
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
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.
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.
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. 😎
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).
Una **máquina abstracta** es un modelo teórico que representa un sistema de computación o un algoritmo sin hacer referencia a detalles específicos de implementación física o tecnológica. Es una herramienta conceptual utilizada en ciencias de la computación para analizar y diseñar algoritmos y programas. El propósito es simplificar el estudio de la computación al centrarse en la lógica y los procesos, sin importar cómo se ejecuten en hardware real.
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.
Una máquina abstracta es un modelo conceptual de una computadora digital que permite comprender su funcionamiento a un nivel teórico. No se refiere al hardware o software específico, sino a cómo la máquina procesa datos e instrucciones utilizando un intérprete de lenguaje de programación. Realiza operaciones básicas como procesar datos primitivos, controlar la secuencia de ejecución, manejar la transferencia de datos y gestionar la memoria. Un ejemplo famoso es la máquina de Turing, que ilustra cómo estas máquinas pueden resolver problemas complejos mediante un conjunto limitado de reglas.
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.
Maquina de Alan Turing. (Maquina Abstracta),El Test de Turing es una prueba de la habilidad de una máquina para exhibir un comportamiento inteligente similar al de un ser humano. El formato de la prueba es la conversación. Una máquina que sea capaz de pasar el test de Turing correctamente, impedirá a un ser humano distinguir si las respuestas provienen de otra persona o de una máquina. (Increible aporte a la tecnologia)
![](https://static.platzi.com/media/user_upload/image-fec71ca4-1dd4-4f96-9c8c-fc2e6b716ccb.jpg)
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 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.
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.
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.
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.
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)
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
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.
💚
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)
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.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?