Programming languages are languages — “unnatural” languages because they are constructed explicitly; “formal” languages because they rely on mathematical notations and are described mathematically; “machine” languages because they are used to communicate with machines: but because they are read and written by humans, supported by human communities and forming those communities in turn, programming languages are “human” languages above all.
Programming languages adopt structural elements from natural language, including syntax, grammar, vocabulary, and even some sentence structure. Other aspects of language have received less attention, including noun declension, verb tense, and situation-appropriate register. Semiotics shows how language use can connote and imply, and will lead to interpretation. Language involves larger level structure too: conversations, stories, and documents of all kinds. Language supports both cognitive and affective processes, and is involved in building mental models that we use to recall, reason, and respond.
Programming is a complex activity, uncertain yet precise, individual and social, involving intent and interpretation.
Language is not the accident of programming - it is the essence.
|slide handouts (HOPL-OCT15-4to3-4up.pdf)
Wed 25 OctDisplayed time zone: Lisbon change
16:00 - 17:30
|Will code remain a relevant user interface for end-user programming with generative AI models?
Advait Sarkar Microsoft Research and University of CambridgeLink to publication DOI
|programmingLanguage as Language;
Onward! EssaysLink to publication DOI File Attached