cucapra / undergrad-research

file issues here if you're interested in doing research with us!
https://capra.cs.cornell.edu/ugresearch.html
0 stars 0 forks source link

Jan-Paul V. Ramos #77

Closed janpaulpl closed 2 years ago

janpaulpl commented 2 years ago

Personal Details

Name: Jan-Paul V. Ramos

Major: Math and CS

Year in Cornell & Expected graduation date: Freshman, 2025

Relevant classes: [Fall] CS 2800, CS 2110, CS 7190 (Seminar), MATH 2230 [Spring] CS 6110, CS 4810, CS 3110

Interested in continuing research during the summer? Yes

Expertise (languages/frameworks/etc.): JavaScript, TypeScript, Python, C++, Rust, Raku, Haskell, OCaml, Ruby, Coq, Java, Unix, Git

Research

When do you want to do research? (Researchers can get involved during the semester as an "extracurricular" or get more involved over the summer, when they treat research like a full-time job.)

I am interested in starting work Spring 2022 or working full time in the Summer.

What is exciting to you about research? (How did you get interested in it? What are you hoping to get out it?)

I am very excited about the ability to create and apply fresh ideas in programming language design. I strongly believe that the most important thing about developing a system is that the tools to develop that system are correct (as to not end up with an erroneous system). Verification and analysis of programming languages excite me due to the strong parallels with formal mathematics and the ability to solve problems in both fields at the same time by using the tools that define them.

I have recently been exploring constructs for developing programming languages, especially the mathematical meaning found within these tools, and I would love to contribute research into domain specific applications. My forays into research have mainly involved personal projects, developing my own programming languages and learning about semantic analysis for type checking.

What kind of research do you want to do? (It's OK to say, "I don't know; I'm looking to explore!")

I would love to develop a domain specific language and ensuring optimization, in addition to working on building, maintaining, and optimizing compilers. More specifically, I've found interest in substructural type systems, verification of concurrent programs, interactive theorem proving, and compiler verification.

Background

Note: While these questions are optional for first & second year students, we highly encourage everyone to respond to them. Third & fourth year students are required to respond to all questions.

Was there a paper that particularly excited you? (This doesn't have to be a paper from our group.)

Semantics First! - Rethinking the Language Design Process

This paper introduced me to the complexities and importance of the art which is programming language design. I learned the idea of constructing a language via micro-languages and generating a language schema that uses combinators to create language classes. This got me interested in the efficiency of programming language design and how important the idea of language maintenance is for future development. The paper's ideas also heavily influence how I learn and critique programming languages that are new to me, and motivated me to seek research in areas related to verification of type systems and formal semantics.

Which of the current research projects would you be interested in working on and why?

While I would be interested in working on any of Capra's projects, from a design perspective, the Dahlia language intrigues me due to it's use of substructural logic with affine logic for time multiplexing, as I am familiar with the use of affine types in Rust and would like to learn and work on an implementation of this type system. More specifically, I've read papers on Rust's borrow-checker and the development of a type system to capture this notion in Rust (Oxide), and I would be interested in learning about and working on the implementation and formalization of type safety in Dahlia.

I also agree with Dahlia's core values of applying concepts not commonly supported in modern programming languages which allow space for exploring new ideas and avoiding lag.

Anything else you want to tell us about yourself?

I've previously worked on a concatenative oriented programming language made in Raku for experimenting with pattern matching. Later I developed a domain specific programming language for differential equations and started learning about denotational semantics.

Attach a CV/Resumé resume.pdf

rachitnigam commented 2 years ago

Hi @jpVinnie, can you email me at rnigam@cs.cornell.edu to set up a time to chat?