sábado, 26 de enero de 2019

Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler



Building a compiler is more than translating high-level programming languages to assembly or machine code. A compiler is an instance of translators from a source language to a target language.
In this document it is explained that we have the same structure in many translators: an input sting which is composed into tokens, these tokens are grouped into phrases and then these phrases are mapped to the output sequence determined by the structure a context in which they occur.
We also learn that compiler development tools, like lex and yacc, can be applied for many translation problems.

It is explained that Dot is a tool that reads a textual graph and produces a drawing of the graph specified. To do something like this, the following actions are needed:

1-     Read the textual graph using context-free parsing techniques
2-     Check semantic consistencies between components
3-     Construct internal representation
4-     Determine the output
5-     Modify the output
6-     Generate postscript for the graph

For translating Latex to html the translation should follow the following actions:
1-     Read the latex document using context-free parsing techniques
2-     Construct internal representation
3-     Process Latex constructs and output

We notice that the steps are less than the graph example, and it is because the source and target languages are semantically much closer in the Latex to html case.
Essentially, with both cases we can see the same main phases of the compiler. A lexical analysis and parsing, A semantic analysis, code generation and code optimization.

In Lexical analysis and parsing, the compiler refers to the type or scope of a variable. In code Generation, the compiler transverse the tree representation of a program to generate assembly or machine code for the target machine. In optimization step, the compiler basically makes code transformations to make the program faster.


jueves, 17 de enero de 2019

This is ME

"Hello there", my name is Sergio Adrian González Hidalgo,but I prefer to be called Adrian. I am studying the eighth semester of major in Computer Science at Tecnológico de Monterrey Campus Estado de México.

I am currently working as a Junior Consultant for DGA Consulting Technology developing Business Intelligence apps for Grupo Bimbo. 

From this course, I expect to learn the structure and the importance of Compiler Design and try to apply it to my daily life as student or at my job. I also want to improve my programming skills and find other ways to solve problems.
My hobbies are:
  • Painting: I have painted with watercolors, chalk pastel, colors, and acrylic paint. I prefer to paint movie characters.
  • Watch movies: I love going to the cinema. I usually go twice a week if the school and my job allows me to do so. My favourite genre is the suspense. One of my current favorite directors is Edgar Wright, I enjoyed Baby Driver a lot. My favourites movies are:

  1. A Star is Born
  2. Christopher Robin
  3. Watchmen
  4. Avengers:Infinity War 
  5. Star Wars (All of them)
  6. Lord of the rings
  7. Psicosis
  8. Baby Driver

  • Play Videogames: I have played videogames since I was a kid, I mainly enjoy shooter videogames because I consider myself good at them. One of my previous dreams was to become a profesional gamer.
  • I don´t watch series because I don´t like to wait for another season.