Software programs are the carriers of computational knowledge. Their construction is governed by the formal syntactic and semantic rules of a programming language. Programming language design typically focuses on notation, programming models, and semantics. However, such designs typically ignore the interaction of software developers with program code.
Integrated development environments (IDE) increase the productivity of programmers by supporting them in the interactive construction and maintenance of programs. For example, syntax highlighting distinguishes different categories of words in a program, and helps in signposting and visualizing the structure of programs; inline error markers indicate syntactic and semantic problems where they occur instead of in a separate error list; code completion supports discovery of available functionality; and hyperlinking of identifiers allows navigation along definition chains across compilation units.
We propose language interaction design as the integration of interaction design in programming language design, reserving a key role for language interaction in the design process. Research in language interaction design studies the interplay between programming language design and programming environments, identifying beneficial and harmful design patterns that can inform language designers in an early stage of the design process.
The goal of this workshop is to lay the foundations for a discipline of language interaction design by bringing together a select group of leading researchers from the fields of programming languages, domain-specific languages (DSLs), model-driven development (MDD) and human-computer interaction (HCI). The workshop will be considered a success if it produces a joint understanding of language interaction design through the formulation of a taxonomy and a research agenda based on a series of case studies.