Entradas

Internals of GCC

  En esta entrada de blog hablaré del episodio de podcast llamado como “Internals of GCC”, con una duración de 53 minutos por “Software Engineering Radio” con Morgan Deters como invitado, en él se trata sobre el funcionamiento de GCC. GCC, según Victor González, es un compilador perteneciente al proyecto de GNU, hecho para los lenguajes C, C++, Objective C y Fortran, donde puede tener recibir como entrada un programa escrito en cualquiera de los lenguajes anteriormente descritos , y de esta manera poder generar un programa ejecutable en lenguaje binario en la máquina donde se realizará la ejecución de dicho programa. La manera en que trabaja GCC, por Morgan Deters es de la siguiente forma donde el front-end es modular con middle end, y de esta forma tiene la capacidad de poder trabajar con cualquier back-end, con con la arquitectura en específica en la máquina donde se está corriendo. En una forma más específica, el compilador lo que hace es parsear todo en un árbol abstracto sintáctic

Lin Clark on WebAssembly

  En esta entrada de blog, hablaré sobre el podcast “Lin Clark on WebAssembbly” por Software Engineering Radio en el año 2018, el cual trata sobre los propósitos y los casos de usos para WebAssembly y porque se desearía usarlo, cómo interactuar con el buscador, la manera en cómo influye en el proceso de desarrollo, y el futuro de web assembly. Web Assembly es una nueva forma de código para que pueda correr sobre navegadores modernos, pero algo muy interesante es que es un lenguaje de bajo nivel para que pueda tener un muy buen rendimiento, el cual es casi nativo por su naturaleza binaria, y pueda ser usado para compilar C/C++, Rust y JavaScript con el fin de que pueda ser corrido en un ambiente web. (MDM, 2021). En mi materia de Laboratorio de Aplicaciones, me hubiera usarla simplemente para ver sus rendimiento y aprender ciertas cosas acerca esta nueva forma de codificación, porque desde la clase   de Organización Computacional nos platicaron sobre el lenguaje de emsamblador y siempre

Building Server-Side Web Language Processors

  En esta entrada de blog, hablaré sobre “ Building Server-Side Web Language Processors ” escrito Ariel Ortiz, el cual trata sobre diferentes perspectivas a una aproximación a web a los cursos que involucran diseño de lenguaje e implementación. Donde la idea principal es darles a los estudiantes la capacidad de construir para que puedan construir un procesador de lenguaje que pueda correr en la web, y no sólo en una línea de comandos. Además de compartir las ventajas y las experiencias en clases. Se explica que el curso de diseño de compiladores han tenido una gran relevancia en los cursos de los planes de estudio de grados en ciencias computacionales alrededor del mundo. En donde, los estudiantes tienen que construir en un proyecto, un compilador durante todo el semestre que requiere la traducción de un subconjunto de un “procedural language” como C, en el cual se emplean conceptos avanzados como “scanner” y “parser generators”, y esto ocurre a través de diferentes fases: lexical/synt

Ruby and the Interpreter Pattern

  En esta entrada de blog, hablaré sobre el artículo de “Language Design and Implementation using Ruby and the Interpreter Pattern” escrito por Ariel Ortiz, donde se presenta el S-expression Interpreter Framwork (SIF) está presentada como una herramienta como en lenguaje de enseñanza e implementación, el cual está basado en el padrón de diseño intérprete. El que esté en Ruby hace relación con la clase de Arquitectura y Diseño de Software donde lo hemos utilizado mucho para aprender todos los patrones de diseño y hacer todas las tareas que se nos han asignado en la clase. Me pareció muy interesante el propósito del S-expression Interpreter Framework, el cual es ayudar a los estudiantes a aprender una gran popular lenguaje dinámico orientado a objetos, al mismo tiempo que los estudiantes logran aprender conceptos del diseño del lenguaje e implementaciones, esto me pareció muy interesante además de mostrarme lo complicado que es enseñar temas que tienen un alto de grado de complejidad y

Mother of COBOL- The Queen Of Code

  La entrada de este blog, se tratará sobre fuentes de información; “Grace Hopper – The Mother of Cobol” del sitio web “I Programmer” y el video documental “The Queen of Code” dirigida por Gillian Jacobs en 2015. El artículo trata sobre la primera programadora y una de las expertas más grandes en software fue la almirante Grace Brewster Murray Hopper, quien es la responsable del desarrollo del lenguaje Cobol y tuvo una gran relevancia para hacer las computadoras más accesibles a todo el mundo en general. Y además que fue parte del anédota donde se definió la palabra “bug”, porque la Mark I estaba arrojando resultados incorrectos, lo cual hizo que se llevara a cado una inspección interna, lo cual hizo que se descubriera a un pequeño insecto dentro de la máquina que provocaba ese comportamiento tan erróneo, lo sacaron de la máquina y lo pegaron a la bitácora nombrándolo como “First ACTUAL bug found”. Esto fue una anécdota chistosa y hace reflexionar como un término puede tener ese nivel

La selección natural

  En esta entrada de blog hablaré acerca del ensayo llamado como “The Hundred-Year Language” escrito por Paul Graham. En el cual nos habla acerca de la evolución de los lenguajes, y la forma en como consiguen ser perpetuos, y las razones por las que algunos perecen a pesar de tener un gran éxito en algún momento determinado. Me pareció interesante como el autor explicó el como el lenguaje de Java, si no evoluciona de una buena forma o que sus cimientos hayan sido mal diseñados está destinado a no dejarse de usar, usando la analogía con la construcción de una casa donde el ligar donde va a ser construido deber escogido con suma cautela, debido a que posteriormente pueden hacerse arreglos pero el lugar no puede ser cambiado, pese a ser un lenguaje muy exitoso o popular. También menciona algo interesante, lo cual es que los lenguajes no son una tecnología sino una notación, por ende su evolución es bastante lenta, del mismo que la notación matemática donde va avanzando pero no a un paso a

El inicio de la traducción

  En esta semana hablaré acerca del artículo “Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler” escrito por Saumya Debray. Dicho artículo trata sobre la importancia que tiene la materia de “Diseño de compiladores” en la aplicación de forma profesional de prácticas relacionadas al software, y donde muchos estudiantes al pensar que ellos no van a diseñar de forma explícita un compilador, le prestan menos importancia, por ende menos tiempo al estudio de dicha materia. En lo personal, pienso que es una materia retadora al mismo tiempo que interesante pero me causa intriga el cómo poder aplicar todos los conocimientos adquiridos durante este semestre en la vida profesional. Pero sé que este semestre buscaré junto a los miembros de mi equipo, terminar este gran reto, otorgándome un gran nivel de satisfacción tanto personal como profesionalmente. Otro aspecto intrigante es la forma en que el autor, ejemplifica diversas formas de poder aplicar los alg