Read-eval-print-loops (REPLs) allow programmers to test out snippets of code, explore APIs, or even incrementally construct code, and get immediate feedback on their actions. However, even though many languages provide a REPL, the relation between the language as is and what is accepted at the REPL prompt is not always well-defined. Furthermore, implementing a REPL for new languages, such as DSLs, may incur significant language engineering cost. In this paper we survey the domain of REPLs and investigate the (formal) principles underlying REPLs. We identify and define the class of sequential languages, which admit a sound REPL implementation based on a definitional interpreter, and present design guidelines for extending existing language i...
This paper describes a completely automated method for generating efficient and competitive interpre...
Context: Computational notebooks are a contemporary style of literate programming, in which users ca...
Manually verifying the behavior of software systems with respect to a set of requirements is a time-...
Read-eval-print-loops (REPLs) allow programmers to test out snippets of code, explore APIs, or even ...
A frequent programming pattern for small tasks, especially expressions, is to repeatedly evaluate th...
The Spoofax Language Workbench supports the definition of all aspects of textual languages using hig...
Exploratory programming is a form of incremental program development in which the programmer can try...
Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as...
© 2019 Neural information processing systems foundation. All rights reserved. We present a neural pr...
Replicode is a language designed to encode short parallel programs and executable models, and is cen...
The use of modern and complex programming languages requires dedicated development environments to s...
In this paper we present Repo, an interpreted language for exploratory programming of distributed in...
International audienceDebugging reactive programs requires to provide a lot of inputs – at each reac...
Human-computer communication can be achieved through different interfaces such as Graphical User Int...
Research on language implementation techniques has regained importance with the rise of domain-speci...
This paper describes a completely automated method for generating efficient and competitive interpre...
Context: Computational notebooks are a contemporary style of literate programming, in which users ca...
Manually verifying the behavior of software systems with respect to a set of requirements is a time-...
Read-eval-print-loops (REPLs) allow programmers to test out snippets of code, explore APIs, or even ...
A frequent programming pattern for small tasks, especially expressions, is to repeatedly evaluate th...
The Spoofax Language Workbench supports the definition of all aspects of textual languages using hig...
Exploratory programming is a form of incremental program development in which the programmer can try...
Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as...
© 2019 Neural information processing systems foundation. All rights reserved. We present a neural pr...
Replicode is a language designed to encode short parallel programs and executable models, and is cen...
The use of modern and complex programming languages requires dedicated development environments to s...
In this paper we present Repo, an interpreted language for exploratory programming of distributed in...
International audienceDebugging reactive programs requires to provide a lot of inputs – at each reac...
Human-computer communication can be achieved through different interfaces such as Graphical User Int...
Research on language implementation techniques has regained importance with the rise of domain-speci...
This paper describes a completely automated method for generating efficient and competitive interpre...
Context: Computational notebooks are a contemporary style of literate programming, in which users ca...
Manually verifying the behavior of software systems with respect to a set of requirements is a time-...