From 5f45e31fe97cc87885216e0a050faa8e7ea33490 Mon Sep 17 00:00:00 2001 From: sejo Date: Thu, 27 May 2021 19:00:56 -0500 Subject: [PATCH] =?UTF-8?q?p=C3=A1gina=20de=20danza=20papier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/actualizaciones.gmo | 3 +- src/actualizaciones.xml | 2 +- src/compudanzas.gmo | 10 +- src/danza_papier.gmo | 199 ++++++++++++++++++++++++++++++++++++++++ src/estilo.css | 2 +- src/indice.gmo | 1 + src/non_e-computers.gmo | 1 + src/s-camino.gmo | 1 + src/tw.txt | 1 + 9 files changed, 212 insertions(+), 8 deletions(-) create mode 100644 src/danza_papier.gmo diff --git a/src/actualizaciones.gmo b/src/actualizaciones.gmo index 9ab863c..e8951cd 100644 --- a/src/actualizaciones.gmo +++ b/src/actualizaciones.gmo @@ -11,8 +11,9 @@ si lo prefieres, puedes seguir las (y más) actualizaciones via git: ## sjm-1661d1 -página nueva: +páginas nuevas: => ./postfix.gmi {postfix} +=> ./danza_papier.gmi {danza papier} ## sjm-1660d7 diff --git a/src/actualizaciones.xml b/src/actualizaciones.xml index 9bc1dd5..c1968f8 100644 --- a/src/actualizaciones.xml +++ b/src/actualizaciones.xml @@ -15,7 +15,7 @@ 2021-05-27T12:00:00Z - página de postfix + páginas de postfix y de danza papier diff --git a/src/compudanzas.gmo b/src/compudanzas.gmo index e63596e..b2e5d99 100644 --- a/src/compudanzas.gmo +++ b/src/compudanzas.gmo @@ -4,8 +4,6 @@ materializando ciencias computacionales en cuerpxs humanxs y coreografía # las danzas -sección en construcción - ## ciclo de memoria un dispositivo-danza que almacena información binaria, con capacidad de ser escrita y leída. @@ -43,10 +41,11 @@ en donde bailamos con y a partir de una fila / tira / cinta de objetos / símbol en donde bailamos con y a partir de una fila / tira / cinta de objetos y una tabla específica de estados, en un acomodo tal que nos permite simularnos bailando con y a partir de una fila / tira / cinta de objetos y cualquier tabla específica de estados -## pequeña persona computadora +## danza papier -en donde nuestras acciones toman la forma de las operaciones de una computadora organizada casi como las que conocemos. +en donde nuestras acciones toman la forma de las operaciones de una computadora con una arquitectura similar a la de las que conocemos. +=> ./danza_papier.gmi {danza papier} # el taller @@ -143,7 +142,8 @@ el taller consiste en 6 sesiones de 2 horas de duración cada una => http://www.blikstein.com/paulo/projects/project_water.html programmable water - paulo blikstein 2003 => https://wiki.xxiivv.com/site/papier.html wdr papier computer => https://wiki.xxiivv.com/site/paper_computing.html paper computing -=> https://yip.pe/analog.html analogue computing. +=> https://yip.pe/analog.html analogue computing +=> https://www.turingtumble.com/ turing tumble ### modelos simples de computadora diff --git a/src/danza_papier.gmo b/src/danza_papier.gmo new file mode 100644 index 0000000..676e263 --- /dev/null +++ b/src/danza_papier.gmo @@ -0,0 +1,199 @@ +# danza papier + +baile colaborativo que ejemplifica una arquitectura computacional común, basada en la wdr papiercomputer + +=> https://wiki.xxiivv.com/site/papier.html papier computer + +parte de las {compudanzas} + + +# componentes + +## participantes + +la arquitectura base consta de al menos 6 personas: + +* PC: apuntadora del programa (program counter) +* Memoria: quien administra la lista de números correspondiente al programa +* CU: la directora, unidad de control +* Rn: al menos dos registros, R0 y R1 +* LU: la que responde preguntas lógicas + + +## materiales + +como materiales tangibles solo se requiere la lista de números que administra la Memoria. + +como sea, si el grupo cuenta con suficientes personas, cada uno de esos números puede ser cuerpeado por una persona distinta. + +opcionalmente, puede existir una tabla en papel que sirva de recordatorio a la CU de las operaciones a seguir: el microcódigo. + + +## movimientos + +se necesita contar con, y conocer, el siguiente conjunto de movimientos. + +### todas las personas + +* dígito-movimiento: un movimiento por cada digito en la base elegida (por ejemplo, del 0 al 9 para trabajar en base 10) +* posición: una forma de indicar si un dígito es el primero o el segundo +* finalización: un movimiento que indique que el cómputo ha terminado + +será importante conocer cuál es el movimiento siguiente y anterior a cada dígito-movimiento. + +### Registros y CU: + +* indicación de incremento +* indicación de decremento + +### LU y CU: + +* pregunta: ¿el contenido del Registro es 0? +* respuestas: sí, no + +### PC y CU: + +* indicación de incremento sencillo +* indicación de incremento doble + + +## instrucciones + +la computadora cuenta con los 5 siguientes códigos de operación (entre paréntesis su mnemónico) + +* 0: Fin del programa (FIN) +* 1: Condicional (CND) +* 2: Salta a (SLT) +* 3: Incrementa (INC) +* 4: Decrementa (DEC) + +una instrucción completa consiste de ese código de operación, acompañada de un dígito llamado argumento. + +ese argumento tiene un significado distinto según la instrucción: + +* FIN: argumento ignorado +* CND: el argumento es el número de Registro al cual preguntarle si es 0: si la respuesta es sí, hay que saltarse una instrucción, y si la respuesta es no, hay que continuar normalmente +* SLT: el argumento es el número de línea a la cual saltar a continuación +* INC: el argumento es el número de Registro que ha de incrementarse +* DEC: el argumento es el número de Registro que ha de decrementarse + + +# ciclo de instrucción + +la máquina estará en el llamado ciclo de instrucción hasta encontrar a una instrucción FIN. + +este ciclo consiste de dos partes, fetch (buscar) y execute (ejecutar). + +antes de comenzar, hay que realizar una inicialización: + +* PC toma el dígito-movimiento correspondiente a 0, y se mueve transmitiéndolo +* Registros toman el dígito-movimiento inicial que se les indique, y se mueven transmitiéndolo + +## fetch (buscar) + +* todes les Registros se mueven con una amplitud normal, transmitiendo sus dígitos-movimientos +* PC se mueve transmitiendo el dígito-movimiento que tiene almacenado +* Memoria recibe el dígito, y busca en su lista de números al par de dígitos que se encuentran en esa posición. +* Memoria se mueve transmitiendo esos dos dígitos-movimientos, con cuidad de indicar cuál es el primero y cuál es el segundo +* CU recibe esos dos dígitos +* la máquina pasa a la etapa execute + + +## execute (ejecutar) + +* CU identifica al primer dígito recibido como código de operación, y al segundo como argumento +* de acuerdo al código de operación, suceden las siguientes operaciones: + +### FIN: Fin del programa (0) + +* CU se mueve indicando finalización +* todes se detienen excepto Registros que continúan con sus dígitos-movimientos + +les Registros ahora pueden ser inspeccionados para leer los resultados del cómputo. + +### CND: Condicional (1) + +* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento +* Registros reciben el dígito +* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando +* les demás Registros reducen la amplitud de su propio dígito-movimiento. +* CU se mueve preguntando a LU si el Registro es 0. +* LU recibe la pregunta, y observa al Registro con movimiento amplio +* LU se mueve respondiendo sí o no +* CU recibe la respuesta de LU +* CU se mueve dirigéndose a PC: si la respuesta que recibió de LU fue sí, entonces se mueve indicando un doble incremento; si la respuesta fue no, entonces se mueve indicando un incremento sencillo +* PC recibe la indicación, y pasa al siguiente dígito-movimiento, ya sea una o dos veces según lo recibido. +* la máquina pasa a la etapa fetch + + +### SLT: Salta a (2) + +* CU se mueve dirigéndose a PC, transmitiendo el dígito-movimiento que recibió como argumento +* PC recibe el dígito y lo almacena, reemplazando al dígito-movimiento que estaba realizando antes. +* la máquina pasa a la etapa fetch + + +### INC: Incrementa (3) + +* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento +* Registros reciben el dígito +* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando +* les demás Registros reducen la amplitud de su propio dígito-movimiento. +* CU se mueve dirigiéndose a les Registros, transmitiendo la indicación de incremento +* Registro con el movimiento amplio, pasa al dígito-movimiento siguiente al que estaba realizando (incrementa en 1 al valor que estaba almacenando) +* les demás Registros hacen caso omiso +* CU se mueve dirigéndose a PC, indicando un incremento sencillo +* PC recibe la indicación, y pasa al siguiente dígito-movimiento +* la máquina pasa a la etapa fetch + + +### DEC: Decrementa (4) + +* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento +* Registros reciben el dígito +* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando +* les demás Registros reducen la amplitud de su propio dígito-movimiento. +* CU se mueve dirigiéndose a les Registros, transmitiendo la indicación de decremento +* Registro con el movimiento amplio, pasa al dígito-movimiento anterior al que estaba realizando (decrementa en 1 al valor que estaba almacenando) +* les demás Registros hacen caso omiso +* CU se mueve dirigéndose a PC, indicando un incremento sencillo +* PC recibe la indicación, y pasa al siguiente dígito-movimiento +* la máquina pasa a la etapa fetch + + +# ejemplo de programa + +este programa suma los dígitos en R0 y R1, colocando el resultado en R0 + +## lista de números + +este es el programa en formato de lista de números para que administre Memoria. + +* 0: 2 3 +* 1: 4 1 +* 2: 3 0 +* 3: 1 1 +* 4: 2 1 +* 5: 0 0 + +el primer dígito en la lista es el número de línea. + +los dos dígitos siguientes son el primer y segundo dígitos de instrucción + + +## ensamblador + +usando las palabras clave (mnemónicos) para indicar los códigos de operación, el programa se vería así: + +* 0: SLT 3 (salta a la línea 3) +* 1: DEC 1 (decrementa R1) +* 2: INC 0 (incrementa R0) +* 3: CND 1 (¿R1 es 0? si sí, salta una instrucción, si no, continúa) +* 4: SLT 1 (salta a la línea 1) +* 5: FIN 0 (fin del programa) + +(esta forma de programar es a la que se refiere la práctica de {s-camino}) + + +## llega(n) aquí +=> ./compudanzas.gmi {compudanzas} diff --git a/src/estilo.css b/src/estilo.css index 1ccf886..8331e80 100644 --- a/src/estilo.css +++ b/src/estilo.css @@ -56,7 +56,7 @@ main h2{ padding-top: 0.5em; } main h3{ - font-size: 20px; + font-size: 18px; } gallery{ diff --git a/src/indice.gmo b/src/indice.gmo index 76f2498..a171402 100644 --- a/src/indice.gmo +++ b/src/indice.gmo @@ -8,6 +8,7 @@ => ./coloring_computers.gmi {coloring computers} => ./compudanzas.gmi {compudanzas} => ./compuertas.gmi {compuertas} +=> ./danza_papier.gmi {danza papier} => ./danzas_compuertas.gmi {danzas compuertas} => ./danzasistemas-tag.gmi {danzasistemas-tag} => ./darena.gmi {darena} diff --git a/src/non_e-computers.gmo b/src/non_e-computers.gmo index 58bfd2a..b9e420a 100644 --- a/src/non_e-computers.gmo +++ b/src/non_e-computers.gmo @@ -15,6 +15,7 @@ computación sin semiconductores => https://wiki.xxiivv.com/site/papier.html wdr papier computer => https://wiki.xxiivv.com/site/paper_computing.html paper computing => https://yip.pe/analog.html analogue computing +=> https://www.turingtumble.com/ turing tumble ## llega(n) aquí => ./coloring_computers.gmi {coloring computers} diff --git a/src/s-camino.gmo b/src/s-camino.gmo index b165929..94a99e5 100644 --- a/src/s-camino.gmo +++ b/src/s-camino.gmo @@ -31,5 +31,6 @@ no cualquiera tiene el tiempo... igual aquí andaremos, con paciencia, y un paso ## llegan aquí => ./avr-asm.gmi {avr-asm} +=> ./danza_papier.gmi {danza papier} => ./darena.gmi {darena} => ./textos.gmi {textos} diff --git a/src/tw.txt b/src/tw.txt index 0696ed0..810a86e 100644 --- a/src/tw.txt +++ b/src/tw.txt @@ -2,6 +2,7 @@ # nick = sejo # url = https://quesomango.neocities.org/tw.txt # +2021-05-27T18:00:00-05:00 more fun! writing up the instructions for the danza papier! 2021-05-27T16:00:00-05:00 added postfix notation notes, including some routines for pace to speed conversions 2021-05-26T20:00:00-05:00 moving the gemini capsule to the soviet 2021-05-26T18:00:00-05:00 i find it fun to describe a turing machine for people to perform