Skip to content

This repository contains the construction of a basic compiler step by step, along with one interpreter that has been implemented on a robot's control. All topics viewed during the compilers course 2018-2 ESCOM IPN are covered.

License

PitCoder/Compilers

Repository files navigation

Compilers

This repository contains the construction of a basic compiler step by step, along with one interpreter that has been implemented on a robot's control. All topics viewed during the compilers course 2018-2 ESCOM IPN are covered.

Content

  • Introduction
  • Hoc Compiler Construction
  • GramBot (On Site Programable Vehicle)
  • Team
  • License

Introduction

What is a Compiler?

Is a program that translates and executes a program in one language, into a program in another language. We expect the program produced by the compiler to be better than the original.

Compilers

What is an Interpreter?

Is a program that reads an executable program and produces the results of running that program. Usually, this involves executing the source program in some fashion.

Interpretation

Difference

Why study a compiler construction?

Compiler construction is a microcosm of computer science where things like artificial intelligence, algorithms, computational theory, sistems and computer architectures all come together. Even if compilers are a well study subject, they are constantly changing by adding new features to pose new problems, changing costs and re-engineering of old solutions.

Hoc Compiler Construction:

The construction of a Hoc compiler involves:

  • Lexical Analizer
  • Grammar Parsing
  • Semantic Analysis
  • Translation and simplification

All these topics are implemented in the Hoc folders, where an implementation of a Hoc Compiler applied to polynomials has been made. The compiler allows: - All basic arithmetic operations (e.g addition, substraction, etc...) - Some statistic operations (e.g mean, middle, mode, etc...) - Integration and Differentiation over polynomials. - All basic components for programming (e.g decisions, cycles, conditions, memory and so more)

GramBot (On Site Programable Vehicle)

A robot vehicle which can be remotely programmable on site from a desktop application, the robot uses its own interpreter allowing it to be customizable by modifying robot’s command set in an easy way. Hardware components of the robot were programed using C++ and Arduino, middleware communication using Python 3 and the interpreter using Java along with Lex and Yacc.

Grambot

Codebase

Grambot's codebase is within the folder "Grambot/codebase/", the folder contains the frontend and backend of the application: interface, interpreter and server comunication in Java, middleware communication in Python and finally hardware implementation in Arduino files.

Demonstration

Demostration

Team

This is the team that made Grambot possible:

César Cruz Arredondo Jonathan Olea Zuñiga Eric Alejandro López Ayala Luis Figeroa Romero
César Cruz Arredondo Jonathan Olea Zuñiga Eric Alejandro López Ayala Luis Figeroa Romero

Python, Java and Arduino Developer

Java and Python Developer

Java, Python and Arduino Developer

Java and Python Developer

License

License

About

This repository contains the construction of a basic compiler step by step, along with one interpreter that has been implemented on a robot's control. All topics viewed during the compilers course 2018-2 ESCOM IPN are covered.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published