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

Code Generation and Tac to Bytecode translation #50

Open
wants to merge 314 commits into
base: metadata-provider
Choose a base branch
from

Conversation

fcurdi
Copy link

@fcurdi fcurdi commented Dec 17, 2020

Adds code generation functionality using System Reflection Metadata library. A translation of TAC to Simplified Bytecode is included as well.

Structure:

  • All code needed for generation is included in the new project MetadataGenerator.
  • Tac to Bytecode translation is added in the existing Backend project under the Transformation.Assembly folder.
  • There are two other projects added, Examples and ExamplesEXE, that are samples used while developing this changes. The first one compiles to a DLL while the second one generates an EXE file. These are not essential though, so they can be eliminated if needed.

Besides these additions, several changes were made to the framework in the Loader and Dissasembler modules as well as in some definitions like types, methods, and so on. Almost all of this changes were made in different pull requests so it is easier to review the changes. The ones that were not made in a separate PR, and are included in this one, are the changes in the Dissasembler since it was difficult to isolate them because they were dependant on the other pull requests. Probably the best way to merge these changes will be to go through the previous pull requests first and once they are all merged if necessary this PR could be split in two, one with the new changes and one with the Dissasembler changes.

This pull request includes changes from all previous pull requests

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

Successfully merging this pull request may close these issues.

None yet

1 participant