by Justin Hsu on Apr 4, 2023 | Tags: category theory, education
Category theory has long served as a deep mathematical theory for investigations in programming languages and semantics. Recent years have seen renewed interest in applying category theory to programming languages. This past fall, I redesigned a graduate class called “Category Theory for Computer Scientists”. Though I admittedly do not consider myself to be an expert in category theory, I think the design of this kind of class is underexplored and there is room for experimentation. Here, I’d like to describe my experience teaching category theory to computer scientists and what I learned.
Read more...
by Sukyoung Ryu and Jihyeok Park on Jan 12, 2023 | Tags: continuous integration, javascript, language design, mechanized specification
The open-source development of the JavaScript programming language is now automatically checked. The language specification written in English is type checked, and the tests are checked for conformance to the specification. This blog post presents how research papers became continuously integrated into the development of a real-world programming language.
Read more...
by Alex Potanin on Aug 25, 2022 | Tags: climate change, conferences, diversity, hybrid
Due to the COVID-19 pandemic, many conferences were held online starting in late March 2020, and several of us helped with the fully virtual offering of SPLASH 2020. By mid-2021, however, vaccination was widespread and effective at preventing COVID infection and severe disease, and it became feasible to consider in-person attendance at conferences. Polls of authors and the larger community indicated strong interest in holding an in-person version of SPLASH. Still, as of October 2021 the US had not relaxed its travel restrictions on people from large parts of the world, and even beyond that some people would not be able to travel to SPLASH. We therefore decided to offer SPLASH as a Hybrid conference in October 2021, offering both in-person and virtual attendance options. We were also excited about piloting a hybrid conference, because there are many longer-term benefits if we can run them well, including supporting both in-person networking and accessibility for attendees who can only attend remotely. We knew doing so would be hard, but we also hoped to learn valuable lessons. SPLASH 2021 turned out to be an interesting case study as the first major post-COVID PL conference to go hybrid, and one of the earliest across the ACM as well.
Read more...
by Emery Berger on Aug 18, 2022 | Tags: education, machine learning, programming
CS educators: AI-based developer tools are gunning for your assignments. Resistance is futile.
Read more...
by Todd Millstein and Roopsha Samanta on Aug 16, 2022 |
Today, Todd Millstein hands off the role of co-editor at PL Perspectives to Roopsha Samanta.
Read more...
by Alastair Donaldson on Aug 8, 2022 |
Starting with PLDI 2023, the proceedings of PLDI will be published in the PACMPL journal. Read about the community survey that informed the PLDI Steering Committee before they voted for this change.
Read more...
by John Wickerson on Jun 13, 2022 | Tags: community, mentoring
SIGPLAN-M is SIGPLAN’s international long-term mentoring program. Initiated in late 2020 by Talia Ringer, it now has over 200 mentors and over 300 mentees. Everybody in the community — from aspiring undergraduate to experienced faculty — is welcome to take part either as a mentor or as a mentee (or both). For this edition of People of PL, John Wickerson met three of SIGPLAN-M’s mentors to find out about their experiences.
Read more...
by The PLDI Steering Committee on Jun 10, 2022 | Tags: PACM-PL, PLDI, survey
Should the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) publish its proceedings in the Proceedings of the ACM on Programming Languages (PACM-PL) journal? Please fill out this short survey to help us decide.
Read more...
by Roman Elizarov on May 19, 2022 | Tags: compilers, kotlin, language design, programming languages
Real programming languages are living things, changing and evolving. As with any production code, most of their designer’s time is spent on bug fixing and small improvements, rather than on the radical new features. One of the unique things about Kotlin is that it has been evolving in the use-case and community-driven fashion for years, starting way before it went to the stable 1.0 release in 2016, even for some time before it went public in 2011. Language design in the real world is a maintenance of a complex system and it runs into novel research questions with respect to type systems, feature interactions, usability, real-life code patterns in big code, etc.
Read more...
by Santosh Nagarakatte and Jay Lim on Apr 28, 2022 | Tags: awards, correct math libraries, optimization, runtimes
To create a single polynomial approximation that produces correct results for multiple representations and rounding modes, we propose to generate a polynomial that generates the correctly rounded result of f(x) using the non-standard round-to-odd rounding mode with 2 additional precision bits compared to the largest floating point representation that we wish to support. We provide a proof that this method produces correctly rounded results for multiple representations and for all the standard rounding modes. More detailed explanation of our approach can be found in our POPL 2022 distinguished paper.
Read more...