Image of Santosh Nagarakatte

Jay P. Lim

Lecturer
Department of Computer Science
Yale University

Email: jay.lim (at) yale (dot) edu

[dblp] [CV]

About Me

I joined Yale University as a Lecturer in July 2021 after receiving Ph.D. at Rutgers University. I teach a wide array of courses from introductory to graduate level courses: Introduction to Computing and Programming (CPSC 100), C Programming and Linux System (CPSC 175), Introduction to Systems Programming and Computer Organization (CPSC 323), Compilers and Interpreters (CPSC 421/521), and Full Stack Web Programming (CPSC 419/519). I am teaching CPSC 323 and CPSC 421/521 this semester.

Research Interest

On the research front, my focus is in programming languages, systems, and numerics. My primary research interest lies in developing fundamental principles to build robust software systems. I am especially interested in ensuring that widely-used and often trusted systems (e.g., compilers and open source libraries) are indeed correct. Recently, I have been exploring the fields of error analysis and generation of correct numerical programs. My current research projects include generation of correctly rounded math libraries (RLibm) and developing energy-efficient while accurate signal processing algorithms for Brain Computer Interfaces.

My research, conducted with my advisor Santosh Nagarakatte and several collaborators, have been recognized with two distinguished paper awards (PLDI 2021, POPL 2022) and 2022 ACM SIGPLAN John C. Reynolds Doctoral Dissertation award. Correctly rounded elementary functions developed through our RLibm project is now implemented in LLVM's libc.

Awards

  • 2022 ACM SIGPLAN John C. Reynolds Doctoral Dissertation Award: Novel Polynomial Approximation Methods for Generating Correctly Rounded Elementary Functions. PDF
  • Distinguished Paper Award at POPL 2022: One Polynomial Approximation to Produce Correctly Rounded Results of an Elementary Function for Multiple Representations and Rounding Modes. PDF DOI
  • Distinguished Paper Award at PLDI 2021: High Performance Correctly Rounded Math Libraries for 32-bit Floating Point Representations. PDF DOI
  • Rutgers University Rizvi Family Graduate Fellowship
  • Student Research Competition Gold Medal at PLDI 2018: Automatic Verification of Assembly Implementation of Cryptographic Algorithms

Publications

  • Progressive Polynomial Approximations for Fast Correctly Rounded Math Libraries.
    Mridul Aanjaneya, Jay P. Lim, and Santosh Nagarakatte.
    Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI), 2022.
  • Distinguished paper award
    One Polynomial Approximation to Produce Correctly Rounded Results of an Elementary Function for Multiple Representations and Rounding Modes.
    Jay P. Lim and Santosh Nagarakatte.
    9th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL), 2022.
  • Distinguished paper award
    High Performance Correctly Rounded Math Libraries for 32-bit Floating Point Representations.
    Jay P. Lim and Santosh Nagarakatte.
    Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI), 2021.
  • An Approach to Generate Correctly Rounded Math Libraries for New Floating Point Variants.
    Jay P. Lim, Mridul Aanjaneya, John Gustafson, and Santosh Nagarakatte. 2021.
    48th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2021).
  • Approximating trigonometric functions for posits using the CORDIC method.
    Jay P. Lim, Matan Shachnai, and Santosh Nagarakatte. 2020.
    In Proceedings of the 17th ACM International Conference on Computing Frontiers (CF 2020).
  • Debugging and Detecting Numerical Errors in Computation with Posits.
    Sangeeta Chowdhary, Jay P Lim, and Santosh Nagarakatte. 2020.
    In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020).
  • Automatic Equivalence Checking for Assembly Implementations for Cryptography Libraries.
    Jay P Lim and Santosh Nagarakatte. 2019.
    Proceedings of the International Symposium on Code Generation (CGO 2019).
  • Compiler Optimizations with Retrofitting Transformation: Is there a Semantic Mismatch?
    Jay P Lim, Santosh Nagarakatte, and Vinod Ganapathy. 2017.
    ACM SIGSAC Workshop and Programming Languages and Analysis for Security (PLAS 2017).

PhD Dissertation

  • ACM Sigplan John C. Reynolds Doctoral Dissertation Award
    Novel Polynomial Approximation Methods for Generating Correctly Rounded Elementary Functions.
    PhD Dissertation, Rutgers, the State University of New Jersey, August 2021
    PDF

Technical Reports

  • RLibm-Prog: Progressive Polynomial Approximations for Fast Correctly Rounded Math Libraries.
    Mridul Aanjaneya, Jay P Lim, and Santosh Nagarakatte.
    Department of Computer Science, Rutgers University, Technical Report DCS-TR-758, Nov. 2021
  • RLIBM-ALL: A Novel Polynomial Approximation Method to Produce Correctly Rounded Results for Multiple Representations and Rounding Modes.
    Jay P. Lim and Santosh Nagarakatte.
    Department of Computer Science, Rutgers University, Technical Report DCS-TR-757, August 2021
  • RLIBM-32: High Performance Correctly Rounded Math Libraries for 32-bit Floating Point Representations.
    Jay P. Lim and Santosh Nagarakatte.
    Department of Computer Science, Rutgers University, Technical Report DCS-TR-754, April 2021
  • A Novel Approach to Generate Correctly Rounded Math Libraries for New Floating Point Representations.
    Jay P. Lim, Mridul Aanjaneya, John Gustafson, and San- tosh Nagarakatte.
    Department of Computer Science, Rutgers University, Technical Report DCS-TR-753, July 2020

Professional Activities

  • University and Departmental Activities
    • Summer 2024: Camp Yale - Build Program Advisor
    • Summer 2023: Camp Yale - Build Program Advisor
    • Summer 2022: Camp Yale - Build Program Advisor
    • Fall 2021 - Fall 2023: Yale University CS Academic Honesty Committee
  • Program Committee Member
    • 2024: PLDI'25
    • 2022: OOPSLA'23, SIGCSE TS'23
    • 2021: OOPSLA'22

Teaching Experience

  • Fall 2024: CPSC 421 & CPSC 521 - Compilers and Interpreters
  • Fall 2024: CPSC 323 - Introduction to Systems Programming and Computer Organization
  • Summer 2024: CPSC 112 - Introduction to Programming
  • Spring 2024: CPSC 175 - C Porogramming Language and Linux
  • Spring 2024: CPSC 323 - Introduction to Systems Programming and Computer Organization
  • Fall 2023: CPSC 421 & CPSC 521 - Compilers and Interpreters
  • Fall 2023: CPSC 323 - Introduction to Systems Programming and Computer Organization
  • Summer 2023: CPSC 112 - Introduction to Programming
  • Spring 2023: CPSC 421 & CPSC 521 - Compilers and Interpreters
  • Spring 2023: CPSC 323 - Introduction to Systems Programming and Computer Organization
  • Fall 2022: CPSC 419 & CPSC 519 - Full Stack Web Programming
  • Fall 2022: CPSC 100 - Introduction to Computing and Programming
  • Summer 2022: CPSC 112 - Introduction to Programming
  • Spring 2022: CPSC 421 & CPSC 521 - Compilers and Interpreters
  • Spring 2022: CPSC 323 - Introduction to Systems Programming and Computer Organization
  • Fall 2021: CPSC 323 - Introduction to Systems Programming and Computer Organization
  • Fall 2021: CPSC 100 - Introduction to Computing and Programming
  • Fall 2020: CS211 - Computer Architecture (Teaching Assistant)
  • Spring 2020: CS544 - Computer Security (Teaching Assistant)
  • Summer 2019: CS211 - Computer Architecture
  • Spring 2019: CS544 - Computer Security
  • Fall 2018: CS211 - Computer Architecture (Teaching Assistant)
  • Spring 2018: CS516 - Programming Languages And Compilers II (Teaching Assistant)
  • Summer 2015: CS206 - Introduction to Discrete Structures II (Teaching Assistant)
  • Spring 2015: CS314 - Principles of Programming Languages (Teaching Assistant)
  • Fall 2014: CS314 - Principles of Programming Languages (Teaching Assistant)