We kick off The Identity Function with Chung-chieh Shan, an assistant professor at Indiana University. Chung-chieh Shan received both his B.A. in mathematics and his Ph.D. in computer science from Harvard. His work lies at the intersection of mathematics, linguistics, and programming languages.
Tell me a bit about yourself.
I grew up in Taipei, Taiwan, in a society and family that privileged academic achievements. I am the youngest of three siblings and my parents worked hard to give me access to computers, telescopes, pianos, and professors. I also enjoyed writing while missing out on video games.
Anyway, I have since forgotten all the physics, chemistry, astronomy, Analects, and piano fingering that I learned. What’s left is intuition and caution in math and programming, and relative pitch, signposting, and apologizing.
It’s great that you had such a supportive environment. What brought you to the US?
College! My high school math teacher suggested it, and my parents went with it. In that era it was kind of rare for people from Taiwan to go abroad for college like I did, but it was very popular to go abroad for grad school.
So speaking of supportive environment, my math teacher had a previous student who went to grad school in the Boston area and stayed, and he and his family supported me in all sorts of ways there: Transportation, dentistry, food, advice…
Wow, that must have been really helpful! Do you think it made a difference for your career path?
Maybe — he was definitely a role model for me, being an immigrant who stayed in academia. And I wouldn’t take for granted the peace of mind that comes from knowing that someone is there to support me if I need it, even if it turns out I don’t.
But academia and STEM were defaults that worked out OK for me, so it’s hard for me to say what I’d be doing instead if not that.
I see that you started in mathematics. How did you get into computer science research?
I was interested in both math and CS in college, and I took a lot of CS courses as a math major. But I didn’t have math research experience and was discouraged by a fruitless mere semester of independent study. Math felt beautiful as a spectator sport to me.
I don’t know why my equal lack of computer science research experience didn’t deter me from applying, but I got in and went!
In the end I found the kind of CS research I’m most interested in is similar to math research in the following way: It is not predictable when you finally discover something very interesting or beautiful, but you can find steady work to do — such as working out special cases, trying out hypotheses, learning background material— and trust that work to contribute to those discoveries eventually.
Tell me more about your research. What are you working on right now?
I’ve been working on probabilistic programming, which generally means making it easier to program with probabilities. I focus on developing languages that make code more reusable and more clearly express human intent. For me this involves figuring out what human expressions mean and how to manipulate them.
What distinguishes the design of probabilistic programming languages from other programming languages?
What’s most important is that the semantics be probabilistic, so if I’m a user who’s interested in a particular probability distribution then I can write a program that denotes it. But we like the syntax and the types of a language to grow in tandem with the semantics, so we end up wanting syntax for composing distributions, types to distinguish distributions from other values, and so on.
The hope is that the programmer can write a program that handles distributions without worrying all the time about how exactly to represent and operate on them, just as programmers today can write a program that handles integers without worrying all the time about binary, adders, and register allocation.
So you’re abstracting the details of distributions? Does this mean that someone with little understanding of probability can write a program in this language, or does this still target domain experts?
The goal is at least that someone with little understanding of probabilistic inference algorithms can write a program in this language and get accurate answers quickly. The user can be an expert in a domain like epidemiology or linguistics and know what distributions are, but shouldn’t need to be an expert on how to compute with them.
Today there is still a tradeoff between getting accurate answers quickly and not needing to know computational details. My group is focused on freeing someone who does know computational details from having to re-implement them from scratch each time.
How does math inform your research?
My current work on probabilistic programming is based on a lot of math. To take one example, to translate a probabilistic program to the measure it denotes, we use induction on its abstract syntax tree; after we simplify the measure mathematically, to translate the result back, we use linear algebra on differential operators.
Formal tools aside, I find math elevates my hope for how small the core of a language can be and how smoothly its parts can fit together to help diverse communities discover common concepts and deepen shared understanding. Because my hopes are higher, I tend to try harder.
That reminds me of the first time I learned about the Curry-Howard Correspondence. It really changed my view of how work from one field can contribute to another.
Indeed — it won’t surprise you that I’m a big fan of Curry-Howard and of contributions from one field to another!
For these contributions to stick, a computer scientist has to trust that a logician or mathematician who can barely check their email without professional help may nevertheless be willing and able to say something important about programming language design. And the logician or mathematician has to put in the work and vulnerability to subject their idea to foreign scrutiny and testing.
What about linguistics? How does that tie in?
I used to study the semantics of in-situ quantifiers in natural language, and they gave me intuition about how delimited continuations work in programming languages. On one hand, people use in-situ quantifiers in natural language all the time; an example is the word “nobody” in the sentence “I saw nobody yesterday.” On the other hand, although delimited continuations are very useful in programming, most programmers find them kind of weird.
It turns out that in-situ quantifiers and delimited continuations are analogous. For example, the type of “nobody” is (Thing → Prop) → Prop, and doesn’t that look like a continuation-passing type?
This analogy helped me better program with delimited continuations and better analyze in-situ quantifiers. My dissertation generalized this intuition to one about side effects in natural and programming languages.
How does this relate to side effects?
One view of side effects is that they arise during the execution of a program and contribute indirectly to its result. We could complain that side effects break equational reasoning, but we could also refine our notion of program equivalence to match what reasoning is spared by the effects. In particular, we could apply something like a monad to enrich the denotations we assign to expressions.
Now, linguists also study certain natural-language phenomena, such as quantification, that break equational reasoning. For example, just because nobody is the king of France and I saw nobody yesterday doesn’t mean I saw the king of France yesterday. In response, linguists have applied monads to enrich the denotations they assign to expressions.
Linguists also have the intuition that these phenomena arise during the interpretation of an utterance and contribute indirectly to its result. So it makes sense to call these phenomena too side effects. It turns out that programming language notions such as evaluation order can be transferred to linguistic analyses.
Interesting. I never thought of viewing natural language this way.
I like to think that linguistics helps me bring diverse communities together by making sense when people use different terms for the same meaning or the same term for different meanings. Thus, I’ve been watching people create and analyze and express concepts in context. This has given me a healthy respect for formal methods as well as informal ones.
It has also led me to believe that distinctions that matter tend to have fuzzy edges. When you see that concepts such as games and numbers have fuzzy edges that cannot be formally defined, it’s no surprise that concepts of sexuality and gender do too, and the fuzzy edges of a concept are often revealed when we subject its versions to instances that are often dismissed as corner cases.
On that note, how has being LGBTQ impacted you as a researcher?
I came out to myself and others in college, so I was out in graduate school, and my job searches were two-body problems involving my ex-partner. Still, I didn’t feel that my orientation made much difference at work, whether at a technical discussion, a social occasion, or a hiring decision. I was never involved with campus LGBTQ groups, seldom visited a gay bar, and in more than a decade at work, I did not experience or witness any homophobic incidents.
Though if I could have gained US citizenship by marriage, I would have spent much less time applying for visas to attend international conferences…
I’ve noticed that in our academic culture, orientation is treated as a personal detail, and so it’s taboo to talk about it in the workplace. Has this silence impacted you at all?
There’s an impact like dripping water wears away a stone. The lack of visibility and representation of LGBTQ people in academia has chipped away at my sense of belonging and my hope for role models. And I find myself self-censoring how I describe my family and friends to my colleagues, even when their contributions to my life are relevant to the conversation at hand.
I like to be reminded at work that each of us is a human being, and it’s a lot easier to think that you manage to separate who you are from what you do when who you are happens to fit in better with how society is set up (through no fault or merit of your own) so you don’t have to censor as much the family you keep, the languages you speak, or the clothes you wear. I’d like me and my colleagues to be more conscious of these social expectations.
How have you dealt with this throughout the years?
Instead of separating who I am from what I do, I try to match my colleagues in terms of how much they fail at that separation. I incorporate a bit of my own cultural references into how I speak and dress. I once convened a QUILTBAG lunch table at ICFP and I’ll probably do it again.
What a great idea! How did that work out?
It helped me — I established some friendships and deepened others — and what little feedback I heard was mildly positive. It was just one table at one lunch.
But next time I would advertise my expectations more clearly when I sit down at an empty lunch table, both to QUILTBAG people and to other conference attendees passing by who just want a seat to eat and talk about monads. There was substantial derailing from the latter this time.
Thinking back — if you were to talk to yourself from twenty years ago, would anything about your current life be surprising?
Everything I said so far would have surprised myself twenty years ago, except for my staying in a STEM career in the US. I wasn’t even out to myself twenty years ago. Here’s one more surprise: I regularly travel hundreds of miles to see my friends, and they’re not from work!
Are these friends from the community? One of the things I’ve always loved about being LGBTQ is that it opens up this whole diverse, beautiful, and supportive community.
Yes! Of course every community has its ups and downs, but I’m lucky to be able to access some communities, and they are a big part of what makes Indiana home for me.
If you don’t mind me asking, what was the coming out process like for you? You mention being out to yourself; was there a period of denial?
I probably had a period of denial. But it didn’t make me uncomfortable while I was growing up, because academic performance was so paramount that sexuality of any sort was easy to avoid.
I wonder if, to some degree, this is part of the problem. If we are so focused on academic success that we sometimes forget that who we are is important, too.
I would definitely pay attention to who gets to set the standards as to what counts as academic or professional success and what aspects of who we are are appropriate to bring into a school or workplace.
How do you think we can change this for future researchers?
I hope to be visible, to represent, to step a bit outside my comfort zone, to invite and make space for me and my colleagues to interact as embodied human beings with identities, and finally to recognize others when they do the same.
I’m doing this for other LGBTQ folk. I want us to see each other! (If others see us too, so much the better.) It takes mutual trust and effort.
Thanks again for doing this!