第八届北京大学程序设计语言讨论班

时间:2023年4月26日15:00-17:00

地点:北京大学理科一号楼1117室

在线会议ID:腾讯会议671-628-9772


Title: Sublanguages in Rhombus

Presenter: Matthew Flatt (University of Utah, Salt Lake City)

Abstract:

Rhombus is a new language that is built on Racket. It offers the same kind of language extensibility as Racket itself, but using traditional (infix) notation. Although Rhombus is far from the first language to support Lisp-style macros without Lisp-style parentheses, Rhombus offers a novel synthesis of macro technology that is practical and expressive. The most significant departure from Racket, apart from the shift away from parentheses, is the use of multiple binding spaces for context-specific sublanguages. For example, expressions, pattern-matching forms, and regular-expression constructions can use the same operators (with different meanings) without creating conflicts. Rhombus includes support for programmers to create their own new spaces and sublanguages.

Bio:

Matthew Flatt is a professor of computer science at the University of Utah. He is one of the developers of the Racket programming language and a co-author of the introductory programming textbook "How to Design Programs". He received his PhD in computer science from Rice University in 1999, joined Utah in 1999, spent the academic year 2006-2007 on sabbatical at the Institute of Software, Chinese Academy of Sciences in Beijing, and is spending the academic year 2022-2023 on sabbatical at the National University of Singapore.


Title: Implementing Domain-Specific Languages with Semantics Lifting

Presenter: Zhichao Guan (Peking University)

Abstract:

Abstraction leakage is a common issue when implementing domain-specific languages (DSLs) using a host language. It occurs when host language details are exposed to the DSL users, downgrading the usability of the DSL. We propose a novel framework for implementing DSLs that avoids abstraction leakage. Our framework treats the host language as a white-box with well-structured semantics, and extends the language with new features when necessary. We define DSL constructs using local translation rules, and derive evaluation rules for them using a semantics lifting algorithm. We prove that our algorithm preserves correctness and maintains abstraction. We implement our framework in a system called Osazone and demonstrate its applicability and versatility with several examples.

Bio:

Zhichao Guan is a Ph.D. student in computer science at Peking University. He is now studying DSL design and implementation, advised by Professor Zhenjiang Hu.


上一条:第九届北京大学程序设计语言讨论班
下一条:第七届北京大学程序设计语言讨论班