Subsecciones
Práctica: Análisis de Ámbito en PL0
- Modifique la práctica anterior para que cada nodo del tipo
PROCEDURE
disponga de una tabla de símbolos en la que se almacenan todos las
constantes, variables y procedimientos declarados en el mismo.
- Existirá ademas una tabla de símbolos asociada con el nodo raíz
que representa al programa principal.
- Las declaraciones de constantes y variables no crean nodo, sino que se
incorporan como información a la tabla de símbolos del procedimiento
actual
- Para una entrada de la tabla de símbolos
sym["a"]
se guarda que clase de objeto
es: constante, variable, procedimiento, etc.
- Si es un procedimiento se guarda el número de argumentos
- Si es una constante se guarda su valor
- Cada uso de un identificador (constante, variable, procedimiento)
tiene un atributo
declared_in
que referencia en que nodo
se declaró
- Si un identificador es usado y no fué declarado es un error
- Si se trata de una llamada a procedimiento (se ha usado
CALL
y el identificador corresponde a un PROCEDURE
)
se comprobará que el número
de argumentos coincide con el número de parámetros declarados en su
definición
- Si es un identificador de una constante, es un error
que sea usado en la parte
izquierda de una asignación (que no sea la de su declaración)
- Base de Datos
- Guarde en una tabla el nombre de usuario que guardó un programa.
Provea una ruta para ver los programas de un usuario.
- Un programa
belongs_to
un usuario. Un usuario has n
programas.
Vea la sección
DataMapper Associations.
- Use la sección
issues
de su repositorio en
GitHub para coordinarse así como
para llevar un histórico de las incidencias y la forma en la que
se resolvieron. Repase el tutorial
Mastering Issues
Casiano Rodríguez León
2016-03-27