Todo sobre los "Parsers"


A lo largo de la historia de las aventuras habrás encontrado con frecuencia el término Parser. Ahora vamos a enseñarte todo sobre ellos: ¿qué son?, ¿para qué sirven?, ¿cuáles son los más importantes?

Debido a su complejidad, los programas de aventuras no son fáciles de hacer. Tienes que estar muy familiarizado con el lenguaje elegido para programar, bien sea BASIC o ensamblador y dominar las operaciones que convierten las órdenes dadas por el jugador en una forma asequible a la máquina.

En BASIC, se trata esencialmente de manipulaciones de matrices de cadena y del uso de subrutinas; aunque ello no es excesivamente complicado, sí­ es un proceso largo y tedioso. Si lo dominas y tienes tiempo, entonces podrás obtener productos muy cualificados. El problema de la lentitud del BASIC afecta poco a estos juegos, por su mismo carácter reposado, pero si aún deseas tener esa "extra" velocidad, puedes acudir a un buen compilador.

En la parte técnica trataremos este tema más a fondo, aunque somos conscientes de que ya hay muy buenos manuales y artí­culos publicados sobre cómo hacer tus aventuras en BASIC.

Es evidente que si comprendes el Código Máquina y dominas el ensamblador, dominarás cualquier campo, incluido el de las aventuras, pero aún así­, verás que es un proceso laborioso.

Por estos motivos, muchas casas de soft, o autores que son perfectamente capaces de producir un programa en CM, tienen sus propias utilidades que les permiten acelerar la producción del juego una vez que el guión está definido.

Entonces, ¿qué hacer si tienes buenas ideas, un buen guión y mucha imaginación, en resumen, si eres un buen escritor, pero careces de profundos conocimientos de informática, o del tiempo suficiente para programar tu aventura?

También puede que tengas ganas de aprender a programar, pero el pensamiento de tener que intentarlo para poder hacer tu aventura te desmoralice.

Otro problema se presenta con los gráficos, elemento que ha llegado a ser poco menos que indispensable para la buena acogida de tu aventura. Es curioso que muchos libros y manuales que dan detalles completos sobre el texto de tu aventura, dejan este punto sin aclarar.

Aunque uses un buen programa de creación de gráficos, y los hay muy buenos, tendrás el problema de que se almacenan como pantallas, usando alrededor de 7 K de memoria.

Tendrás que comprimirlos enormemente para poder meter algunos en tus 48 K disponibles, y eso sin contar el texto. Además, si tu programa resulta un éxito (y hacemos votos porque así­ sea), tendrás otro problema al hacer conversaciones para otra máquinas, pues cada una suele tratarlos de forma diferente.

En las mejores utilidades, esto queda obviado, pues están producidas para los ordenadores más usados y el tema queda reducido a tener el programa para esa otra máquina y ponerte a teclear.

Luego puede que, sencillamente, no te interese aprender a programar o que seas un completo negado para ello y entonces has de reconocer que el uso de un buen Parser te dará unos resultados muy superiores a tus pobres esfuerzos como programador amateur.

Si cualquiera de los anteriores es tu caso, entonces está claro: "forastero, tú necesitas un Parser".

¿QUí‰ SON?

"To Parse" significa analizar gramaticalmente, es decir: un Parser es un analizador gramatical. Como esto no nos ayuda mucho, añadiremos que se encargan de clasificar una palabra o de analizar una frase en términos gramaticales.

Profundizando más, vemos que se trata del proceso de convertir lo que el jugador teclea al jugar tu aventura en una serie de frases pequeñas y simples, para las cuales tú ya habrás definido una respuesta. Esto se hace extrayendo esas frases básicas de la cadena del input, una cada vez, y dejando que el resto del programa "interprete" su significado.

¿Cí“MO APARECIERON?

Como siempre, hagamos un poco de historia para comprender las causas de su aparición. En 1950 las investigaciones sobre inteligencia artificial en el MIT (Instituto de Tecnologí­a de Massachusetts, última vez que lo repetimos), se centraron sobre sistemas de lenguajes que permitieron a los ordenadores manipular el conocimiento humano y la información derivada.

Las primeras aplicaciones fueron en problemas de traducción, siendo el "corazón" del proceso un Parser o analizador, que era una subrutina que dividí­a la frase a traducir en pequeños grupos de sus componentes gramaticales en el idioma original, para que otras partes del programa las convirtieran en el idioma final.

¿Quién crees que adoptó este método? ¡Crowther, el de la aventura original!, te oí­mos exclamar entusiasmado. ¡Sí­, señor, el mismo!, y su Parser era de un tipo muy básico, sólo usando verbo- nombre. Este método fue adoptado por otro viejo conocido nuestro, Scott Adams.

Aunque no es una forma gramaticalmente pura o elegante el decir "abrir puerta" o "coge silla", es efectiva y fácil de usar y hoy dí­a se acepta en la mayorí­a de los juegos de aventuras. Es muy útil que te acostumbres a su uso, reduciendo una frase a sus componentes esenciales: nombre y verbo.

Tiene el inconveniente de que a veces sabes la solución del problema pero no puedes encontrar la palabra adecuada (o mejor dicho, la escogida por el escritor; creemos que el término adecuado serí­a pseudo-programador).

Sirva ya como consejo anticipado: en tu aventura debes usar todos los sinónimos posibles para evitarle tal frustración al sufrido jugador. Luego tendrás los problemas de falta de memoria para tantos sinónimos, pero ese tema lo trataremos aparte.

Otro efecto desagradable es cuando el aventurero descubre que no puede usar en su input una palabra que el escritor ha usado en una descripción de localidad. Por ejemplo: se te dice "ves un vicioso enano", y te apresuras a teclear "mata al vicioso" y el programa te responde "no conozco la palabra vicioso". Muy frustrante.

Esto puede ser peor aún: se te describe una habitación que tiene unos "rústicos muebles"; tú tecleas "coge rústicos muebles" y el programa te contesta "no puedo".

Todo pasa porque los mensajes descriptivos están en la base de datos, pero no son parte del vocabulario del juego, que es otra sección.

En la parte técnica te enseñaremos a evitar en tus programas estos errores de las primeras aventuras.

El caso es que las casas comerciales crearon sus Parsers para uso propio. Tal es el caso del "Database" de Scott Adams o, más modernamente, del "A-Code" de Level 9, pero pronto otras casas vieron que el mercado "pedí­a" que esto útiles se vendieran al público, que también querí­a crear sus propios juegos.

Entonces apareció el famoso QUILL de Gilsoft, que daba al escritor, ya que no programador, las ventajas de hacer sus aventuras en CM sin tener que entender este difí­cil campo.

¿Cí“MO SON?

Un Parser trabaja comparando cada palabra de tu orden con las almacenadas en la tabla de palabras, no con las de la Database de descripciones de texto.

Dicho de otra forma, aun el mejor de los Parsers no tiene ni idea de lo que tú le dices, sólo compara y analiza (y es que, insistimos, no hay enanitos dentro de los ordenadores, por eso te necesitan a ti para funcionar).

Otra de las funciones de un Parser es el manejo de sentencias erróneas. Por ejemplo: si dices "usa el cepillo", u otra frase que no tenga sentido en ese momento o palabra que no se entienda, se te contesta "no te entiendo" o "dilo de otra forma"; en los primeros no te indicaba cuál palabra era la inadecuada, pero los más modernos son más corteses y sí­ que identifican la palabra desconocida.

De todos modos, en los próximos capí­tulos y en la sección de "Trucos para jugar con éxito cualquier aventura" te enseñaremos un método rápido para saber cuál palabra es la que no capta el juego.

A estas alturas deducirás hábilmente que mientras más grande es el vocabulario, más fácil y "suave" será el juego. Pero también te percatarás astutamente que, a mayor vocabulario, mayores problemas con la memoria usada en el ordenador. Gajes del oficio.

Los próximos capí­tulos los dedicaremos a estudiar los Parsers más importantes.

Andrés R. Samudio.

(c)1998-2019 CAAD

Todos los contenidos de esta web son propiedad de CAAD. Las colaboraciones son propiedad de sus respectivos autores.