questions
This page collects questions I expect to keep returning to. They are not meant to be answered once and archived. They are meant to become sharper over time.
-
How should computational effects be modeled?
Moggi's work on computational monads suggests one way to separate values from computations and make effects part of meaning. I want to understand what this separation clarifies, what kinds of effects it captures, and when effects should be treated as semantic structure rather than implementation detail.
-
What is computation?
Different models seem to make different aspects of computation visible. Lambda calculus foregrounds sequential reduction and substitution; models of concurrency, parallelism, interaction, and distribution foreground other structures. What counts as the same computation across these views, and are there kinds of computation that a given model hides?
-
How should programs be modeled?
Programs can be studied operationally, denotationally, categorically, type-theoretically, and perhaps through other lenses I have not yet learned well. What does each model make easy to see, what does it hide, and how do we compare models that preserve different aspects of program behavior and meaning?
-
How should programming languages change when most code is generated by AI?
Programming languages so far have largely been designed with human writers and readers in mind. If AI systems begin producing most code, should languages change, or should specifications, intermediate representations, proofs, and verification tools become the main interfaces instead?