UROP Openings

Have a UROP opening you would like to submit?

Please fill out the form.

Submit your UROP opening

Bootstrapping a parser for a new Python-based programming language


Term:

Fall

Department:

CSAIL: Computer Science and Artificial Intelligence Lab

Faculty Supervisor:

Saman Amarasinghe

Faculty email:

saman@csail.mit.edu

Apply by:

9/16/2020

Contact:

Ariya Shajii: arshajii@mit.edu

Project Description

Seq (https://seq-lang.org) is a new Python-based programming language with a focus on bioinformatics and computational genomics, which aims to marry the performance of low-level languages like C or C++ with the usability and familiarity of high-level languages like Python. Seq's parser is currently implemented in OCaml, and it's backend in C++ using the LLVM compiler infrastructure. In this project, we will be implementing a new parser for Seq... in Seq itself! Seq's syntax, semantics and core language features are all equivalent to Python's, so a knowledge of the Python language should make learning Seq very seamless. We hope to use this project to also guide us in terms of what new language features to add so as to facilitate implementing a fully-fledged parser.

Pre-requisites

- Computer science background - Familiarity with the Python programming language - Familiarity with compiler design and parsing techniques (e.g. 6.035)