Práctica 1: Intérprete MICROCALC
Aclaraciones
- A1. La práctica debe resolverse sin utilizar la
biblioteca re de Python.
- A2. Si quieres implementar las opciones
-s y -a (es opcional pero recomendable)
debes conseguir que así:
cat prueba | ./microcalc -s | ~/PL/metacomp.2.5beta3/verArbol
se visualice el AST de cada una de las líneas contenidas en el fichero prueba. Y cambiando -s por -a se debe visualizar el árbol de derivación en vez del AST.
La implementación de la opción -a no se explica detalladamente en la guía de desarrollo. Eso es intencionado. Pensar cómo hacerlo es un ejercicio aconsejable para entender mejor el análisis sintáctico. No preguntes cómo se hace antes de intentar resolverlo sin ayuda (pero pregunta después, si hace falta).
- A3. En esta asignatura debemos distinguir entre
"letra", con lo que nos referimos a cualquiera de las 26
letras del alfabeto
latino, y "carácter", con lo que nos referimos a
cualquiera de los
caracteres ASCII imprimibles junto con el espacio, el
tabulador y el fin de línea.
Basta con que Microcalc acepte entradas escritas utilizando esos caracteres, no es necesario que acepte caracteres representables con otras normas de codificación. En los ficheros de prueba nos limitaremos a utilizar esos caracteres.
- A4. El enunciado de la práctica tiene dos partes:
(i) especificación y (ii) guía de desarrollo. La
especificación describe lo que debes implementar
respetándola al pie de la letra. Puedes verla como la
descripción de los requisitos de un cliente para el que
estás desarrollando la calculadora. La guía de
desarrollo contiene sugerencias sobre cómo implementar la
calculadora, pero no tienes por qué seguirla al pie de la
letra, puedes adoptar tus propios criterios en todo
aquello que consideres conveniente (nombres de variables,
división del código en clases y ficheros, algoritmos
empleados, etc.) teniendo siempre presente que tu
implementación debe ser adaptable para incorporar las
ampliaciones que se pidan el día de la evaluación.
- A5. Uno de los requisitos de la especificación es
que la calculadora se pueda ejecutar escribiendo en un
terminal la orden ./microcalc [opción], no
python microcalc.py [opción] ni
./microcalc.py [opción].
Si no te funciona, quizás te falte hacer algo de esto:
- mv microcalc.py microcalc
- chmod +x microcalc
- Añadir #!/usr/bin/env python al principio del fichero microcalc.
- dos2unix microcalc, si se ha escrito en un editor para Windows.
Ten en cuenta también que en las aulas informáticas no podrás ejecutarla desde la memoria USB.
- mv microcalc.py microcalc