Projects
-
C Minor. A pedagogical language that has been proposed at the UNLV to facilitate the learning of
programming languages for first years college students. Focus: compiler and virtual machine; ongoing project.
-
Jiapi. The generator generates a type checker based on a description of the type system expressed
in set notation and first-order logic, allowing types to be interpreted as propositions and values to be
interpreted as proofs of these propositions, which can then be reduced to a small number of easily-
reviewable predicates. Focus: Java application; ongoing project.
-
CryptoGraphing. A graphical cryptocurrency transaction observatory/explorer GUI application for
Bitcoin users. Focus: Java application (Front and back end); ongoing project.
-
Enhancing Compiler Error Messages on the Web. A standard web application consisting of
Java Servlets and Java Server Pages that contained a complete list of compiler errors, together with
their error numbers and detailed explanations of what the errors meant. This web application was
an early attempt to show statistical analysis of syntax and semantics errors when dynamic content is
Page 1 of 4 submitted to the server of the compiler. Focus: Web app (Front and back end); DBMS (MySQL and Redis).
-
CovidReader. Created a healthcare management system that operates in a decentralized way relying
on blockchain technology, allowing individuals to share personal health information and know when
they have been in close contact with an infected person while restricting public access to sensitive
information. Focus: Mobile/Web app (Front and back end), DBMS (Firebase and MongoDB), IOTA.
-
ProcessJ is a process-oriented language featuring synchronous channel communication, a Java-like syntax, and a multi-threaded JVM-based runtime with a cooperative
scheduler that allows hundreds of millions of concurrent processes on a single core. I re-engineered
an experimental version of the ProcessJ compiler that was already in use because its code generation
was coupled with a number of bugs that required fixing. Focus: Runtime, code generation, and CSP
semantics.
-
SPOTS. Created a system consisting of a mobile and web application interface with hardware sensors
at parking spots that allowed regular (student) drivers to have an overview of parking spots anywhere on
campus. Focus: Web application interface (Front and back end).
-
LATTE. Undergraduate direct project that consisted in creating a Java GUI application that allowed
students to load in regular expressions or context free grammars and then, using this tool, explore the
creation of different types of automata on the fly. Focus: Java GUI application, Contextfree grammars,
regular expressions, and LL(1), LR(0), SLR(1), LR(1), LALR(1).
-
NATE. “Not Another Text Editor” was a light-weight terminal-based editor built in C. The major
motivation for creating this text editor was to learn different string-searching algorithms of which I
implemented Boyer-Moore, Knuth-Morris-Pratt, and Rabin-Karp. Focus: Highly customizable, color
and highlighting, common keybindings (borrowed from popular editors such as Vi/Vim, Emacs, etc),
simple and relatively fast searching.
Back to Homepage