The Structure and Legal Interpretation of Computer Programs
Keywords:interpretation, software, programming languages, natural language, semantics
This is an essay about the relationship between legal interpretation and software interpretation, and in particular about what we gain by thinking about computers and programmers as interpreters in the same way that lawyers and judges are interpreters. I wish to propose that there is something to be gained by treating software as another type of law-like text, one that has its own interpretive rules, and that can be analysed using the conceptual tools we typically apply to legal interpretation. In particular, we can usefully distinguish three types of meaning that a program can have. The first is naive functional meaning: the effects that a program has when executed on a specific computer on a specific occasion. The second is literal functional meaning: the effects that a program would have if executed on a correctly functioning computer. The third is ordinary functional meaning: the effects that a program would have if executed correctly and was free of bugs. The punchline is that literal and ordinary functional meaning are inescapably social. The notions of what makes a computer ‘correctly functioning’ and what makes a program ‘bug free’ depend on the conventions of a particular technical community. We cannot reduce the meaning and effects of software to purely technical questions, because although meaning in programming languages is conventional in a different way than meaning in natural languages, it is conventional all the same.
Reply by Marieke Huisman, University of Twente.
How to Cite
Main text and response text copyright © 2023 James GrimmelmannReply text copyright © the replier
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.