#author("2019-08-03T03:56:14+00:00","default:sagasite","sagasite")
[[プログラミングの基礎]] > 第1章 はじめに
*1.1 デザインレシピ [#d897b8d1]
正しいプログラムを作るにはどうすればよいか?
~
本書で提示する方法は「デザインレシピ」を使う方法です。
デザインレシピとは、プログラムを作る、設計するにはどうすればよいのかを示すレシピです。
**デザインレシピの考案者 [#ff09cbc3]
p.5で紹介されていますが、「デザインレシピ」という考え方は、フェライゼン(M.Felleisen)らによって提唱されているものだそうです。
「How to Design Programs」という本(英語)で紹介されています。
~
#html{{
<table border="0" cellpadding="5"><tr><td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/0262534800/vertex9-22/" target="_blank"><img src="https://images-fe.ssl-images-amazon.com/images/I/61A1zTUq3AL._SL160_.jpg" border="0"></a></td><td> </td><td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/0262534800/vertex9-22/" target="_blank">How to Design Programs: An Introduction to Programming and Computing (The MIT Press)</a><br>Matthias Felleisen / Robert Bruce Findler / Matthew Flatt / Shriram Krishnamurthi<br>The MIT Press<br>2018-05-04<br>¥ 7,042</td></tr></table>
}}
~
以下のサイトで全文を読めます。(英語)
https://htdp.org/
***参考 [#e301ace3]
-デザインレシピ
https://kdmsnr.com/2015/06/05/
>「デザインレシピ」という言葉は、浅井健一先生の『プログラミングの基礎』ではじめて知りました。ソフトウェア(特に関数)の設計方法は体系化できるという考えです。
>元ネタは有名な「How to Design Programs: An Introduction to Programming and Computing」だそうです。使用している言語はSchemeですけども、考え方は同じです。
+問題分析(Problem Analysis)
+シグニチャ、目的文、ヘッダ(Signature, Purpose Statement, Header)
+関数の例(Functional Examples)
+関数のテンプレート(Function Template)
+関数の定義(Function Definition)
+テスト(Testing)
>ペンシルバニア大学の授業の講義ノートにも似たようなものがありました。上記のデザインレシピを参考にしたと書いてあります。こちらの使用言語はOCamlです。
+問題の理解(Understand the problem.)
+インターフェイスの形式化(Formalize the interface.)
+テストケースの記述(Write the test case.)
+求められる挙動の実装(Implement the required behavior.)
>浅井先生のスライドでは以下の表記でした。
+目的:関数の目的を考え、ヘッダを作成する。
+例:関数の入出力の例を作成する。
+本体:関数本体を作成する。
+テスト:作った関数の動作を確認する。