CAAD https://foro.caad.es/ |
|
[DAAD] En busca del parser perdido. https://foro.caad.es/viewtopic.php?f=8&t=5734 |
Página 1 de 4 |
Autor: | dddddd [ 01 Nov 2014 15:28 ] |
Asunto: | [DAAD] En busca del parser perdido. |
En viewtopic.php?p=69869#p69869 ... DrVanHalenFan escribió: Eer ¡anda! Una ficha en la wikiCAAD acaba de sufrir una pequeña actualización 8) Se refiere a esta histórica edición: wikicaad escribió: Recuperación del sistema Tras el cierre de Aventuras AD, pasaron cerca de 20 años sin saberse nada del programa, ya que las únicas copias supervivientes eran, en principio, las de los ganadores del concurso, y las que se pudieron encontrar de ellas estaban en discos irremediablemente deteriorados. Inesperadamente, entre el material cedido por Andrés Samudio a la Asociación de Usuarios de Informática Clásica (AUIC) para exponer en el evento Madrid Games Week 2013, aparecieron unos discos, guardados en su trastero durante años, con la mayor parte del sistema conservado y en estado funcional, a partir de los cuales el DAAD pudo ser recuperado en su práctica totalidad y ponerse a disposición del público interesado en su uso o estudio tras obtener el expreso permiso del autor durante la feria Valencia Va de Retro 2014. Toda la película en: En busca del Parser Perdido |
Autor: | Uto [ 02 Nov 2014 11:39 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Tras revisar un poco por encima las capacidades del DAAD, veo que fue rápidamente superado por los pawlike para DOS de los 90 (SINTAC o NMP), y por los actuales (Superglús, ngpwas). Supongo que como JSJ tuvo un DAAD algunas cosas ya directamente no se le tuvieron que ocurrir, y al final acabaron en todos los parsers pawlike. DAAD tenía un pequeño problema con la indirección, y es que por las razones que quedaron de manifiesto aquí para el PAW, solo podía tener indirección en un parámetro, el primero, por lo que hay algunos condactos nuevos en DAAD que son copias de otro pero con los parametros cambiados, para poder hacer indireccion del segundo en lugar del primero. Por ejemplo COPYFF flag1 flag2 copia el contenido del flag1 en el flag2 mientras que COPYBF flag1 flag2 copia el contenido del flag2 en el flag1. También hay unos condactos BIGGER y SMALLER para comparar flags que no tendrían mucho sentido con indirección en ambos parámetros. Además hay unos cuantos condactos dedicados a temas específicos que supongo que solo funcionarían en algunos interpretes, como el condacto WINDOW, WINSIZE, CENTRE, y algunos para vagos como el condacto SPACE (imprime un espacio) o DPRINT (para hacer el típico valor1+256*valor2). También habíia posibilidades de hacer un goto mediante etiquetas y el comando SKIP, aunque mucho más limitado que lo que tenía por ejemplo NMP. El único condacto que realmente veo interesante, y que replicaré en ngpaws y Superglús, es el condacto SYNONYM, que creo que funciona diferente a como funcionaba en SINTAC o a las entradas sinónimas que usaba NMP. En realidad Superglús y ngpaws, en su librería base, hacen uso de lago similar a lo que hace el condacto SYINONYM de DAAD, pero sin condacto): SINTAC (un poco de memoria): Código: ECHAR GASOLINA SYNONYM LLENAR DEPOSITO PRESENT oMoto CARRIED oBidon WRITELN "Llenas el depósito." <--- No recuerdo si había un write o un print o algo, sino un MESSAGE valdría DONE NMP: Código: - ECHAR GASOLINA - LLENAR DEPOSITO PRESENT oMoto CARRIED oBidon WRITELN "Llenas el depósito." DONE Como veis en ambos el modelo es similar, para una entrada concreta se admiten dos frases concretas: Superglús/ngpaws: Código: ECHAR GASOLINA LET 33 _voc_LLENAR LET 34 _voc_DEPOSITO LLENAR DEPOSITO PRESENT oMoto CARRIED oBidon WRITELN "Llenas el depósito." DONE En Superglús y ngpaws no existe el soporte de entradas sinónimas, por lo que se hace el truco de cambiar el verbo y nombre de la frase. Esto que a priori parece más incómodo, y probalemente lo sea para casos como el del ejemplo, es tremendamente útil para funcionar en un modelo de acciones como el de Inform. Por ejemplo en la librería base de ngpaws podemos ver cosas como: Código: COGER TODO ; COGER TODO DE --> SACAR TODO DE PREP DE LET 33 &&_voc_SACAR PONER TODO PREP EN LET 33 &&_voc_METER VACIAR _ NOTEQ 51 255 PRESENT @51 ONOTZERO @51 aContainer COPYFF 34 44 COPYFF 35 45 LET 33 &&_voc_SACAR LET 34 &&_voc_TODO LET 43 &&_voc_DE Como veis en la práctica lo que hace la librería es primero revisar la orden del jugador y tratar de convertirla en los verbos básicos. Por ejemplo COGER DE-> SACAR, VACIAR xxx-->SACAR TODO DE xxxx, etc. Al final la librería solo tiene que atender a las acciones definitivas (SACAR, COGER, etc.) Lo que me planteo es añadir el condacto SYNONYM a ngpaws y Superglús (como condacto plugin son 10 minutos) para mejorar la legibilidad de la librería base, cambiando esos Código: LET 33 &&_voc_SACAR LET 34 &&_voc_TODO por Código: SYNONYM SACAR TODO
|
Autor: | dddddd [ 02 Nov 2014 13:41 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Lo de los streams con WINDOW me recordó a algo que también tiene la Z-machine. No sé si la idea de fondo es la misma. SYNONYM y SKIP también me parecieron novedosos, además de la pareja de EXTERN-like con dos parámetros SFX y GFX. Uto, hay una tabla de conversión para letras especiales que, aunque posiblemente ya las descubrieras, pueden ser relevantes para el tema de los emuladores accesibles de Speccy. Sólo he leído por encima la mitad del pdf. Como curiosidades y cosas graciosillas anoté: Citar: Essentially DAAD will look at each entry in the table until it is exhausted - the table of entries, not DAAD! DAAD es incansable, ¡acaso lo dudan! Citar: This is a very powerful action designed to manipulate PSI's. El cliente siempre tiene la razón. Si él dice que son PSI, pues PSI (nada de anglos NPC, que además de tontos, son feos... ¡y huelen mal!). Citar: REMEMBER You are not allowed to release software with MSDOS present - it is against the distribution agreement. No vayamos a tener problemas con tito Bill y nos deje en ropa interior, ¡o peor! Citar: NB You must test your adventure to ensure you do not get any of these runtime errors! ¡¡Chavales... test, test, test!! Citar: Thus a CHANCE 50 condition would allow PAW to look at the next [...] then PAW considers the next entry [...] consider that PAW carries out the A alguien ser le olvidó revisar tras hacer copypaste ;) Citar: The Spectrum interpreter (and indeed the MSX which emulates it) Citar: The parser works by scanning an input line (up to 125 characters) Y, en los fuentes de aventuras: ORIGINA2.SCE del DISK09 escribió: Código: ; 8-6-89 ; ; ; 'In this life, all is possible!' ; Manuel González ; ; ; 'Everything is possible in this life ( but it all costs time and money! )' ; Tim Gilberts ; ; 'And also WE ALL have to work for it' ; Andrés Samudio ¡Filósofos! ORIGINA2.SCE del DISK09 escribió: Código: ;#IF C64 ; #ECHO ¡Odio al Commodore! ;#ENDIF Un mal día lo tiene cualquier programador, ¡malditas máquinas! |
Autor: | dddddd [ 02 Nov 2014 13:58 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
¡Ah! y en el DISK03 está la descripción de los famosos y "complejos" cables de conexión. Spoiler: "CABLES.DOC" |
Autor: | Akbarr [ 02 Nov 2014 22:51 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Oleeeeeeeee, bravo Rockersucker!!! Conseguida la última gran pieza de arqueología aventuril! P.D.: tu nick debería haber sido siempre ese, y así nadie se equivocaría ![]() |
Autor: | Uto [ 03 Nov 2014 01:12 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
dddddd escribió: ¡Ah! y en el DISK03 está la descripción de los famosos y "complejos" cables de conexión. Supongo que lo complejo era leerse el manual del CPC, Disciple, +3 y demás para ver como iba el patillaje del RS-232 para hacer el cable serie que conectaba con el PC ¿no? (el cual por cierto llevaba un vetusto RS-232 de 25 pines, que cayo en desuso mucho antes de que los conectores RS-232 en general cayeran en desuso). |
Autor: | Ivanzx [ 03 Nov 2014 10:14 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Akbarr escribió: Oleeeeeeeee, bravo Rockersucker!!! Conseguida la última gran pieza de arqueología aventuril! P.D.: tu nick debería haber sido siempre ese, y así nadie se equivocaría ![]() Bueno mas bien es Rockersuke, que lo de sucker puede quedar un pelin raro, jeje ![]() Pero si, como os han dicho en Zona de Pruebas, esto es un gran acontecimiento, y esperemos que sirva para aumentar el numero de aventuras/aventureros de la escena! |
Autor: | joruiru [ 03 Nov 2014 11:20 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Es que este hombre tiene síndrome de personalidad múltiple digital... ![]() |
Autor: | Akbarr [ 03 Nov 2014 15:35 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Ivanzx escribió: Akbarr escribió: Oleeeeeeeee, bravo Rockersucker!!! Conseguida la última gran pieza de arqueología aventuril! P.D.: tu nick debería haber sido siempre ese, y así nadie se equivocaría ![]() Bueno mas bien es Rockersuke, que lo de sucker puede quedar un pelin raro, jeje ![]() Pero si, como os han dicho en Zona de Pruebas, esto es un gran acontecimiento, y esperemos que sirva para aumentar el numero de aventuras/aventureros de la escena! Ha sido sin querer, POR SUPUESTO ![]() ![]() ![]() |
Autor: | Uto [ 04 Nov 2014 01:57 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Tras una lectura más detallada, no veo más cosas relevantes aparte de lo ya dicho en DAAD respecto a lo que al lenguaje se refiere, excepto que: 1) Ya aceptaba #defines, de una manera muy genérica, #includes, #ifdefs, etc. Estas cosas estaban en SINTAC y NMP, y están en ngpaws y Superglus via txtpaws. 2) El bucle principal de la aventura (respuestas->proceso1->proceso2) no iba "hardcoded" en el intérprete, sino que se hacía con condactos (con SKIP era perfectamente factible hacer bucles). Esto lo llevaba SINTAC de serie, y yo se lo fusilé y se lo puse a NMP. Ahora sospecho que JSJ se lo fusiló a DAAD previamente ![]() |
Autor: | Dwalin [ 04 Nov 2014 09:37 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Deduzco Uto, que entonces, aparte de el interés puramente histórico o curioso, no tendría más sentido usar el DAAD que en un contexto retroinformático donde se quisiera generar la aventura para varios retro-sistema (tipo Mansión Kali)? |
Autor: | Uto [ 04 Nov 2014 10:10 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Dwalin escribió: Deduzco Uto, que entonces, aparte de el interés puramente histórico o curioso, no tendría más sentido usar el DAAD que en un contexto retroinformático donde se quisiera generar la aventura para varios retro-sistema (tipo Mansión Kali)? En contexto retroinformático tiene su sentido, sí. Fuera de él... fue claramente superado ya por SINTAC y NMP, y en cuanto a las herramienta actuales (ngpaws y Superglús) solo podríamos echar de menos los saltos (SKIP) en Superglús, en ngpaws creo que quedan superados por los colon condacts. Tampoco es que en NMP se usaran mucho las etiquetas la verdad... En el fondo tanto ngpaws como Superglús son los DAAD del momento, porque son "escribe una vez, compila para todas las máquinas" (entendiendo como "todas las máquinas" las activas del momento, que igual que DAAD no compilaba para ZX81 u VIC-20, Superglús/ngpaws no compilan para Spectrum/C64/CPC). |
Autor: | Uto [ 04 Nov 2014 10:21 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
De los fuentes de la AO2: Spoiler: Mostrar Spoiler: Mostrar |
Autor: | baltasarq [ 04 Nov 2014 12:26 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
Hola, Efectivamente, el mayor interés del DAAD es el de rellenar un nicho retro-aventurero. Es algo así como lo que yo hice con "Asalto y Castigo", una aventura portable a varios sistemas retro y actuales. El mayor punto fuerte del DAAD es la posibilidad de generar ejecutables para varias arquitecturas (hoy retro), como sistema "mejorado" para hacer aventuras... no sé yo. Parece que incluso hay muchas menos cosas automáticas que en el PAWS, por ejemplo. Me da la impresión de que el DAAD es el SWAN (system without a name) adaptado a la aventura conversacional en España, con vocabulario y construcciones en español que el parser debía entender. Su punto fuerte para una empresa como AD era el poder generar versiones para todas las plataformas... ¿pero eso ya lo tenía el SWAN? Si el precio del DAAD fue solo por la traducción... ¡todo fueron beneficios! |
Autor: | dddddd [ 04 Nov 2014 12:40 ] |
Asunto: | Re: [DAAD] En busca del parser perdido. |
baltasarq escribió: Su punto fuerte para una empresa como AD era el poder generar versiones para todas las plataformas... ¿pero eso ya lo tenía el SWAN? Según wikicaad, SWAN ya era capaz de exportar a múltiples plataformas. No sé si para DAAD se incluyó alguna más... |
Página 1 de 4 | Todos los horarios son UTC + 1 hora |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |