<div dir="ltr">Hola, hoy 10:30 Guillermo Pacheco va a defender su proyecto de grado:<div><br></div><div><div>&quot;El proyecto consiste en la creación de un lenguaje de programación para ro-</div><div>bots, cuyas capacidades de cómputo son limitadas. Para esto se escogió el</div><div>paradigma de Programación Funcional Reactiva (FRP ) el cual permite expresar naturalmente reacciones a valores que varían en función del tiempo.</div><div>El objetivo es utilizarlo con fines educativos, por lo tanto debe ser simple</div><div>y fácil de usar por usuarios inexpertos, no familiarizados con la electrónica</div><div>ni la informática.</div><div>Para resolver el problema, el mismo se dividi ́o en tres etapas. La primera</div><div>consistió en la definición del lenguaje Willie de alto nivel funcional y reactivo.</div><div>Luego se definió el lenguaje Alf de bajo nivel (Bytecode) más simple de</div><div>interpretar y se implement ́o usando el lenguaje Haskell un compilador que</div><div>traduce un programa Willie al lenguaje Alf.</div><div>La última etapa consiste en crear una máquina virtual, que sea capaz de</div><div>interpretar el lenguaje Alf. Por cada plataforma objetivo, es posible reali-</div><div>zar una implementación de la máquina, lo que permite ejecutar un mismo</div><div>programa en alto nivel en diferentes plataformas.</div><div>El diseño de la máquina consiste de un núcleo común capaz de interpretar</div><div>instrucciones, y módulos bien definidos de entrada/salida los cuáles varían de una plataforma a otra. Esto permite mayor portabilidad y extensibilidad.</div><div>Debe ser posible ejecutar programas en dicho lenguaje dentro de plataformas de hardware reducido. Considerando esto, el lenguaje de programación</div><div>elegido para la implementación de la máquina virtual es C/C++.</div><div>De esta forma se creó un lenguaje reactivo con las características deseadas</div><div>y se codificó una máquina virtual que permite su ejecución en una arquitectura objetivo deseada.</div><div>Las implementaciones tanto de la máquina virtual como del compilador</div><div>son fáciles de mantener, portables y al ser modulares cuentan con la flexibi-</div><div>lidad necesaria para garantizar su extensibilidad.&quot;</div></div><div><br></div><div>Más información en: <a href="https://github.com/guillep19/frob/blob/77a9519a4c875c53786506cc252f38c624864500/report/Informe.pdf">https://github.com/guillep19/frob/blob/77a9519a4c875c53786506cc252f38c624864500/report/Informe.pdf</a></div></div>