Designing a Programming Environment Based on the Program Design Recipe (Lightning Talk)
The program design recipe, introduced by Felleisen et al. in their textbook “How to Design Programs”, is a step-by-step procedure that solves a problem by programming. The design recipe encourages the programmer, after examining the problem statement, to analyze the data, create input-output examples, and develop a template, instead of immediately starting coding. This helps reduce various kinds of errors, such as non-exhaustive conditional expressions and infinite loops.
One problem in programming with the design recipe is the lack of error-checking support for steps other than coding. For instance, in DrRacket, the programmer cannot check the correctness of data definitions or templates, as they are not written as runnable Racket programs.
We propose a programming environment based on the design recipe. The environment covers the whole process of the design recipe, including data analysis and template construction, with an IDE-like user interface. We also create a domain-specific language that allows systematic design of the user interface and error checking algorithms. Although it is only partly implemented at this point, we hope to receive suggestions on the design of our environment, especially from the workshop participants who are teaching with the design recipe.
|Designing a Programming Environment Based on the Program Design Recipe (scheme20-final6.pdf)||271KiB|
Fri 28 Aug Times are displayed in time zone: Eastern Time (US & Canada) change
11:30 - 13:00
|Clotho: A Racket Library for Parametric Randomness|
|Scheme for scientific computing|
Francesco MontanariUniversidad Autónoma de MadridFile Attached
|Designing a Programming Environment Based on the Program Design Recipe (Lightning Talk)|
Junya NoseTokyo Institute of Technology, Youyou CongTokyo Institute of Technology, Hidehiko MasuharaTokyo Institute of TechnologyFile Attached
|On Teaching Type Systems as Macros (Lightning Talk)|
Youyou CongTokyo Institute of Technology, Naoya FurudonoTokyo Institute of Technology, Hidehiko MasuharaTokyo Institute of TechnologyFile Attached
|Programming with Petri Nets to Reason about Concurrency (Lightning Talk)|
julien lepillerYale UniversityFile Attached