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), 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 100 and CPSC 419/519 this semester.

Research Interest

On the research side, I am a programming languages and systems researcher. My primary research interest is in developing fundamental principles to build a more robust software systems. I am especially interested in widely used systems that people use assuming its correctness or even when it is known to produce some error (e.g. numerical systems like math.h). I like to ensure that these systems are indeed correct or find a way to build a system with no error.

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 Pro- gramming 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 Docotral 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
    • Fall 2021 - current: Yale University CS Academic Honesty Committee
    • Summer 2022: Camp Yale - Build Program Advisor
  • Program Committee Member
    • 2022: OOPSLA'23, SIGCSE TS'23
    • 2021: OOPSLA'22

Teaching Experience

  • Fall 2022: CPSC 419 & CPSC 519 - Full Stack Web Programming
  • Fall 2022: CPSC 100 - Introduction to Computing and Programming
  • Spring 2022: CPSC 421 & CPSC 521 - Compileres 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)