GithubHelp home page GithubHelp logo

decaf-compiler-python's Introduction


UkronTadd

Proyecto 3: Proyecto final

No license

University Project 馃帗

Alejandro Tejada 17584

Construccion de compiladores

Universidad del Valle de Guatemala

22/11/2021


Acerca de...

Este proyecto es el tercer de tres de construccion de un compilador. Esta fase es la generaci贸n de c贸digo de ARM. llegamos al final de la generacion, donde tomamos el codigo intermedio y mediante manejo de registros, lo mandamos al STACK. Algunos puntos vistos en este proyecto

  • Creaci贸n de funci贸n getREG para obtener registros
  • creacion de codigo ARM para expresiones
  • creacion de encabezado, etc

Descripci贸n de herramientas y archivos archivos

Listado de herramientas usadas para el proyecto

  • Python 3.8.0 64bits
  • Compiladores principios, t茅cnicas y herramientas, 2da Edici贸n - Alfred V. Aho
  • VS Code
  • Windows Terminal
  • A lot of Coffe (more Coffe than last time, A LOT) (enought coffe for a life V4, version Intermediate Code) (enought coffe for a reencarnation V1122323, version generation ARM Code)

Liber铆as NECESARIAS para correr el programa

  • Python 3.8.0
    • Una versi贸n de Python de la versi贸n Python 3.6.0 64bits o mayor
  • Pprint
  • Terminal
    • Una terminal o programa para correr los programas de python. Puede ser VS Code tambi茅n.

Archivos y carpetas

No. Archivo Prop贸sito/Descripci贸n
1 Python3 Folder donde esta la gram谩tica, los lexer, parser, etc. Ac谩 dentro tambi茅n se encuentran los archivos de prueba y lo que se prueba
2 decafAlejandro.tokens Tokens generados por ANTLR
3 decafAlejandroLexer.py Es un python generado por ANTLR que contiene el lexer del proyecto
4 decafAlejandroListener.py Contiene un listener, es decir, una forma de recorrer el arbol sint谩ctico generado
5 decafAlejandroParser.py el parser generador por ANTLR para el proyecto
6 ErrorClass.py Una clase de errores para arrays o errores generales
7 funciones.py Un python con funciones generales y 煤tiles
8 mainSemantic.py programa m谩s importante. Ac谩 se genera la logica, los valores, y se revisan TODAS las reglas sem谩nticas
9 Gram谩tica V2 Tenemos una nueva coleccion de una segunda gram谩tica, esta se us贸 para eta fase, por ende veremos los mismos listener, tokens, y lexer soloq ue en V2
10 symbolTable.py Clase que contiene TODAS las declaraciones para las tres tablas de simbolos principales: metodos, variables y estructuras
11 NodoBoolean.py Un nodo para guardar las expresiones de algo complejo como un nodo IF
12 NodoCodigo.py Una clase nodo para guardar expresiones y address de las cosas
13 GUI.py La interfaz gr谩fica
14 Readme.md El readme
15 ARMGenerator.py La clase encargada de tener lo necesario para generar codigo de ARM, la sintaxis del mismo
16 compiladorFinal.py La clase que tiene el compilador final
15 Python3/Programas/multiple_tests.decaf El programa donde probamos por defecto


Creditos y Agradecimientos

Course teacher: Bidkar Pojoy

Licence

Bajo la propia del desarrollador.

decaf-compiler-python's People

Contributors

tej17584 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.