Go back to main page.

Past Projects

Some of my past projects are available for download (Portuguese).

LLVM super-optimizer: GSoC 2011 project focused on implementing a super-optimizer for LLVM IR.
More info: Rafael Auler. "Superoptimization for LLVM IR". Google Summer of Code project submission, April 2011.

Complete Dynamic Linker Suite Generator: ArchC simulator support for loading DSOs (dynamic shared objects) in ELF format, as well as binutils/bfd retargeting to an ArchC model (I programmed a generic, ArchC model driven bfd linker backend responsible for creating shared libraries). Started Aug 2008, finished July 2009.

Assembler Generator: ArchC Assembler Generator - Modifications to support a broader range of architectures, mainly the Advanced RISC Machine (ARM). Started May 2007, finished Jul 2008.

Carsharing Automation: Attending the 2008 edition of Imagine Cup software design category (The theme was "Sustainable Environment") - Database, core design. Finished Mar 2008.
More info: Guilherme Kunigami, Izumi Oniki Chiquito, Rafael Auler, Vitor Bacceti Garcia. "On the Environmental Benefits of an Automatic Carpool Suggestion System". Revista Ciencias do Ambiente Online, Volume 4, Issue 2, October 2008. (In Portuguese).

University of Campinas School History Reader: Its aim was to process a document whose obscure format was difficult to read for people extern to the university (courses was written as codes, etc.) and produce an easy to read HTML file displayed in the application. Also, a performance graph is displayed. I completed this project while studying .NET languages, as a mean to learn and exercise managed C++ and C# skills. They were later used in the carsharing project listed above because Imagine Cup projects must use Microsoft .NET.

File/Directory Synchronizer: for UNIX, using POSIX API. Console based tool written in C, generates a shell script to effectively synchronizes two different directories (and its corresponding files and subdirectories) based on time/date info available in the files, provided by the file system. Its main role is to decide when to move a file from folder A to B or B to A in order to provide two equal trees updated with most recent copies of each file.

Text Criptography Software: for Windows, using the Windows API and C. Lightweight tool to provide an easy way to cipher texts, primarily for internet use (like posting human-readable texts in public websites).

Memory Analyzer Tool and Debugger: for Windows, using the Windows debugging API and C. Attach to a Windows process, stop it and start debugging (Intel architecture assembly language). Generates the virtual memory map for the designated program. Saves and restores the memory map to disk. Insert breakpoints.

Graphic Analyzer for Stock Market: for Windows, using the Windows API and C. Bult-in algorithms to identify trends based on a moderate amount of data. Plugin system to support custom designed stock analysis algorithms (frontend / backend based architecture).