Designing a Programming Environment Based on the Program Design Recipe (bibtex)
by Junya Nose, Youyou Cong and Hidehiko Masuhara
Abstract:
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.
Reference:
Designing a Programming Environment Based on the Program Design Recipe (Junya Nose, Youyou Cong and Hidehiko Masuhara), Lighting Talk at Scheme and Functional Programming Workshop (Scheme 2020), 2020.
Bibtex Entry:
@misc{nose2020scheme,
  author = {Junya Nose and Youyou Cong and Hidehiko Masuhara},
  title = {Designing a Programming Environment Based on the Program Design Recipe},
  howpublished = {Lighting Talk at Scheme and Functional Programming Workshop (Scheme 2020)},
  month = aug,
  year = 2020,
  date = {2020-08-28},
  url = {https://icfp20.sigplan.org/home/scheme-2020},
  abstract = {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.}
}
Powered by bibtexbrowser