MEMORANDUM
TO:
|
Paula R. Wellson
University of Texas at Austin, Department of Computer Sciences
|
FROM:
|
Janice Swiczhier
|
SUBJECT:
|
Progress on Scheme Debugging Report
|
DATE:
|
April 3, 1999
|
This memo describes the progress I have made to date on my independent-study project of writing a report on debugging in Scheme.
In this memo, I review the nature of the project and describe work I have completed, work I am currently engaged in, and work I plan to complete by the end of the project.
As I described in my memo of June 21, this project will result in a technical report whose purpose is to provide readers with practical information on developing and debugging programs in Scheme, supplementary to the material in your textbook, An Introduction to Scheme and its Implementation.
Project Description
The report is aimed at students in computer science (undergraduate and graduate) who have previous programming experience, but are new to Scheme. The information in this report is needed because readers who have developed programs using compilers for other languages may be unfamiliar with the approaches available with an interactive interpreter and debugger.
Project Scope
In my earlier memo, I proposed to cover the following high-level topics:
- Loading the debugging module into the interpreter
- Establishing break levels
- Applying backtrace
- Managing dependencies
- Saving and loading a customized heap image of the Scheme system
- Debugging local definitions
- Debugging native code procedure-calls
- Debugging when using functional programming style
- Program design/implementation strategies
- Using stubbed procedures
- Differences between RScheme and other Scheme systems
In my current outline, these are divided into three major parts, with an addendum for topic 11. The three parts are: (a) basic debugging procedurestopics 1-3, (b) advanced debugging procedurestopics 4-7, and (c) general program development strategiestopics 8-10.
Work Completed
I have completed first drafts of the sections in part A on loading the debugging module, break levels, and apply-backtrace. I intend to make note of additional material for these sections while working on the later sections, if further background information is needed.
Present Work
I am currently working on the sections in part B. Since these sections are highly interrelated, I am working on them roughly in parallel. I am also currently researching information on other Scheme systems for section 11; I have located information on Gambit and DrScheme. I expect the current work to be completed by the end of this week, July 25th.
Future Work
Next, I will draft the sections in part C and the addendum on other Scheme systems. Finally, I will fully revise the entire draft, integrating further material where deficiencies have become evident during work on other sections. The final report will be ready for your review on August 6th.
Conclusion
Thus far, the project is proceeding well. I have not run into any major problems, nor do I anticipate any in the remaining work. A current outline is attached.
TENTATIVE OUTLINE
- Introduction
- Basic debugging procedures
- Loading the debugging module into the interpreter
- Break levels
- How to get into them
- How to get out of them
- Apply-backtrace
- How to turn it on
- How to interpret output
- Advanced debugging procedures
- Managing dependencies
- Reloading code
- Rebuilding data structures
- Saving and loading a customized heap image of the Scheme system
- Debugging local definitions
- Debugging native code procedure-calls
- Program development strategies
- Debugging when using functional programming style
- Program design/implementation strategies
- Top-down
- Bottom-up
- Middle-out
- Stubbed procedures
- Prompting for user input
- Using canned data
- Addendum: Differences between RScheme and other Scheme systems
- Gambit
- DrScheme
Interested in courses related to this page or a printed version? See the resources page. |
Return to the main menu of this online textbook for technical writing. |
Information and programs provided by hcexres@io.com.