Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Entrega del Compilador #42

Open
wants to merge 200 commits into
base: master
Choose a base branch
from

Conversation

luisoibarra
Copy link

No description provided.

luisoibarra and others added 30 commits March 4, 2021 15:55
Team information filled
Basic packages with specific tasks created.
- lexer: Contains the logic of the lexical analysis
- parser: Contains the logic of the parsing process
- semantic: Contains the logic of the semantic analysis
- cil: Contains the logic for processing CIL middle code
- mips: Contains the logic for processing MIPS code

Use example for Pipes in main.py using Mocks
Added error saving infrastructure
Enhanced interface organization. ICoolService, ICoolToken
Enforced coding styles:
- Class names is Camellcase
- All params and method should annotate its expected type
- Add documentation to packages, classes, methods when needed
To test Lexer execute:
$ make test TAG=lexer
TODO:
- Complete semantic tests
Run tests with make test TAG=lexer
cool_cmp will be deprecated

Parser fixed:
Missing semicolon at the end of a class definition

Errors updates:
All string errors were replaced with class errors

TODO:
Fix cool2 test to match new languages specs
Pass github tests
TODO:
dispatch3.cl and below
TODO:
Fix cyclic attribute/method fetch
Cyclic dependency fixed between
cool_cmp.lexer.lexer2 and cool2.lib.lexer.lexer

Path updated to provide support for cool_cmp
Comment grammar, lexer and parser are deprecated.
Multiline comments are handled in a pipe base manner (remove_comment_tokens_pipe)
Some of the remaining lexer caused errors fixed

Tests configured
Added temporary lexer to test semantics
Used dictionary computed parse to avoid issue
@jpconsuegra jpconsuegra self-assigned this Mar 10, 2022
@jpconsuegra
Copy link
Collaborator

jpconsuegra commented Mar 10, 2022

Evaluación

  • Damián O´Hallorans Toledo
  • Luis Ernesto Ibarra Vázquez
  • Luis Enrique Dalmau Coopat

Requisitos mínimos (3)

  • El proyecto pasa todos los tests
  • El informe existe y explica el uso del compilador y la arquitectura básica

Requisitos intermedios (4)

  • Se implementaron las fases de chequeo semántico de forma separada y utilizando patrones adecuados
  • La arquitectura del compilador está organizada de forma coherente y mantenible

Requisitos extra (5)

  • Se implementaron las fases de generación de código intermedio y código objeto con patrones adecuados
  • Se resolvieron los problemas de representación de objetos en memoria e invocación de métodos virtuales de forma eficiente
  • Se resolvieron los problemas de boxing/unboxing de forma eficiente
  • Se resuelve el case eficientemente

Extras

  • Implementaron AUTO_TYPE

Comentarios

  • No encontré en el informe cómo se resuelven los métodos virtuales de forma que la invocación polimórfica sea O(1).
  • No encontré en el informe cómo resuelven los problemas de boxing/unboxing, pues no me terminó de quedar claro cómo manejan a los integers y booleans (si por valor o por referencia, y en caso de ser lo primero cómo).
  • No encontré en el informe cómo resuelven el case.

Nota final

Evaluación Nota
Final 4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants