Contextualized Programming Language Documentation
Learning the syntax and semantics of a new programming language is a challenge. It is common for learners to refer to language documentation many times and in many contexts as they build comfort and understanding. We review existing functional language documentation, finding that it tends to be organized according to the structure of the language. Each section interleaves narrative explanations, which introduce precise terminology that is then used consistently, with code examples. Sections often start with simpler special cases of a construct before considering it in full generality.
To make use of language documentation, learners must step away from the code they are working with, e.g., in an exercise or tutorial, to locate and transfer knowledge from the documentation. We describe a system, ExplainThis, that automatically generates contextualized language documentation, structured based on our study of language documentation but specialized to the particular code at the cursor. This system is integrated into the structure editor of Hazel, a live functional environment. Documentation appears next to the editor and color is used as secondary notation to correlate the explanation with program terms. We also study syntactic and explanatory specificity with a formative user study. We find that participants desire documentation to be tailored to specific syntax of the code a user is working with, while allowing an adaptive level of specificity for code examples.
Sat 10 DecDisplayed time zone: Auckland, Wellington change
10:30 - 12:00
|Contextualized Programming Language DocumentationIncludes Demo|
Hannah Potter University of Washington, Ardi Madadi University of Washington, René Just University of Washington, Cyrus Omar University of MichiganDOI
|Competitive Debugging: Toward Contests Promoting Debugging as a Skill|
Patrick Rein University of Potsdam; Hasso Plattner Institute, Tom Beckmann University of Potsdam; Hasso Plattner Institute, Leonard Geier University of Potsdam; Hasso Plattner Institute, Toni Mattis University of Potsdam; Hasso Plattner Institute, Robert Hirschfeld University of Potsdam; Hasso Plattner InstituteDOI Pre-print
|Portals: An Extension of Dataflow Streaming for Stateful Serverless|
Jonas Spenger KTH Royal Institute of Technology, Paris Carbone RISE Research institutes of Sweden, Philipp Haller KTHDOI