Kurt Nørmark ©
Department of Computer Science
Aalborg University
Denmark
Abstract Index References Contents | Theses slides are core slides of the NWPER'2000 and IWPC'2000 talks, given by Kurt Nørmark in May and June 2000. These stand for 'Nordic Workshop on Programming Environment Research' and 'International Workshop on Program Comprehension'. There will be separate slide trails for each of these two talks (NWPER trail and IWPC trail). |
Introduction |
Introduction Slide Note Contents Index References | We start this talk with a view on two basic program comprehension approaches. We here distinguish between whether program comprehension has been written on before hand, or whether the understanding is going to be extracted from the source program. |
|
Here we want to make a distinction which represents when the program comprehension is dealt with relative to the time where it is actually needed. The prevenient approach represent the cases in which some documentation is explicitly written before it is needed. The posterior approach, on the other hand, represent the cases in which the comprehension is attempted to be extracted from the program, when it is needed typically in a late phases of the program life time. |
|
Kinds of understanding Slide Note Contents Index References | There are many different ways to classify program understanding and program documentation. Here we present a classification of program understanding which focuses on the documentation needs before, during, and after the central development efforts. |
|
|
Plan of the IWPC talk Slide Note Contents Index References | On this page we outline the plan of the IWPC talk, which includes selected pages from this collection of material |
|
Plan of the COT talk Slide Note Contents Index References | On this page we outline the plan of the COT talk in Aarhus, august 2000 |
|
Plan of the SIGDOC talk Slide Note Contents Index References | On this page we outline the plan of the SIGDOC talk, which includes selected pages from this collection of material |
|
Overall Observations |
Which kind of documentation Slide Note Contents Index References | We start with a few - but important overall observations concerning our approach and our work. |
|
|
|
Views on documentation Slide Note Contents Index References | There are many different views on documentation, including common attitutes that are reconfired among programmers to such a degree, that most of us belive they are true. |
|
|
|
Integrated program documentation Slide Note Contents Index References | We will here explore the possibilities of integrating programs and written program documentation |
|
|
Literate Programming |
Literate Programming and the WEB System Slide Note Contents Index References | Here we will briefly describe an important background and inspiration, namely Knuth's ideas of literate programming. |
|
|
|
An example of a literate program Slide Note Contents Index References | For those who do not have a background in literate programming we here show an example of a simple literate program. The program is in Danish, but it should nevertheless be possible to get a general understanding of the approach. |
|
|
Internal structure of a literate program (1) Slide Note Contents Index References |
|
Figure. The internal literate programming structure. | ![]() |
Internal structure of a literate program (2) Slide Note Contents Index References |
|
Figure. The program as assembled from the WEB above. | ![]() |
The WEB tools for literate programming Slide Note Contents Index References | There are two classical WEB tools for literate programming. We here show the roles of these two tools. |
|
Figure. The 'classical illustration' of the processing done by the WEB tools tangle and weave. | ![]() |
Problems with WEB-like literate programming Slide Note Contents Index References | Elucidative programming is meant to be an alternative to WEB-like literate programming. Therefore it is natural to identify a number of problems with classical literate programming which we attempt to remedy in our variation of literate programming. |
|
|
Elucidative Programming |
The meaning of the word Slide Note Contents Index References | The verb 'elucidate' may not be part of the working vocabulary of many Danes. Therefore we introduce the meaning of the word on this slide |
To elucidate is |
|
|
Elucidative Programming Slide Note Contents Index References | At this place we introduce elucidative programming. We here describe a number of key properties of the documentation approach. |
|
We will return to all of these items later in the presentation |
Requirements Slide Note Contents Index References | The first paper we wrote about elucidative programming was focussed on a number of requirements. These requirements are listed on this page. |
|
An example of an elucidative program Slide Note Contents Index References | In order to be concrete we will here give an example of a literate program. The program is referred in the NWPER'2000 paper, which is being presented during these slides. |
|
|
An example of an elucidative program Slide Note Contents Index References | In order to be concrete we will here give an example of an elucidative program. This program is akin to the program which is discussed in the SIGDOC paper |
|
Internal comment | - Her kommer Java eksemplet fra Max |
|
Examples of elucidative programs Slide Note Contents Index References |
|
|
The elucidative programming model Slide Note Contents Index References | This page describes a number of important concepts behind the elucidative programming model. |
|
The source format of the documentation - Scheme Slide Note Contents Index References | When the programmer works with a literate program the source format of the documentation is of particular interest. This format is important because it constitute the words and lines actually written by the programmer. In addition, the programmer will spend much time reading parts of the documentation in this format. Therefore the properties of the format matters. This page is related to the Scheme elucidator only. |
|
|
|
The source format of the documentation - Java Slide Note Contents Index References | When the programmer works with a literate program the source format of the documentation is of particular interest. This format is important because it constitute the words and lines actually written by the programmer. In addition, the programmer will spend much time reading parts of the documentation in this format. Therefore the properties of the format matters. This page is related to the Scheme elucidator only. |
|
Tool Overview Slide Note Contents Index References | There are three important tools in an elucidative programming environment. Of these, a standard Internet browser counts for one. The others are the editor used for programming and documentation, and the tool which produces the underlying browser format. |
|
|
The elucidator tool Slide Note Contents Index References | The elucidator tool produces the HTML pages to be shown in a browser. In addition, the elucidator tool makes a number of data structures used by the editor to gain knowledge about the documentation bundle. |
|
|
|
The editor tool Slide Note Contents Index References | The editor tool for the elucidator plays a major practical role. It is important that the programmer can continue working in his favorite environment. We will assume that our programmers use Emacs. Therefore we chose be augment the Emacs text editor with elucidator support. |
|
|
The browser tool Slide Note Contents Index References | The browser tool of an elucidative programming environment is just a standard, modern Internet browser. On this page we emphasize the typical frame layout used by an 'elucidative browser'. |
|
|
Figure. The basic frame layout of an Internet browser that presents an elucidative program | ![]() |
|
Tool Integration Slide Note Contents Index References | Tool integration is a key issue when two or more program development tools are used together. On this page we discuss integration issues of the tools in an elucidative programming environment. |
|
|
|
Tool philosophy Slide Note Contents Index References | Here we will discuss possible and different tool organizations. We call it 'tool philosophy'. Our point is not to force the programmer into a specialized environment for authoring of program documentation. We go for documentation enabling of existing environments. In our experience, programmers are rather conservative, and most of them want to continue working in their favorite environments. There must be major advantages in a new environment in order for the programmers to shift. |
|
|
The Scheme Elucidator Slide Note Contents Index References | On this page we will address the fact that the concrete tool supports the programming language Scheme. Scheme is dialect of Lisp, and as such, Scheme is language with prefix and parenthesized notation. There is also an Elucidator for Java. |
|
|
|
|
The Java Elucidator Slide Note Contents Index References |
|
|
The Design of the Java Elucidator Slide Note Contents Index References | On this page we will illustrate the overall design of the Java Elucdiator. |
Figure. The design of the Java Elucidator | ![]() |
Minor features Slide Note Contents Index References | On this page we will list of number of minor details in the elucidative tools. Take alone, non of these features are of great importance, but together they may perhaps make a difference. |
|
|
NWPER'2000 Questions Slide Note Contents Index References | Here are my answers to the questions that where asked to all NWPER'2000 speakers. |
|
A broader perspective on the use of an elucidator Slide Note Contents Index References | Here we will list a number of potential areas which we expect can be supported by the elucidator. |
|
|
Experience |
Educational experience Slide Note Contents Index References |
|
|
Industrial experience Slide Note Contents Index References |
|
|
Industrial quotes Slide Note Contents Index References |
|
Status and Conclusions |
Status and Conclusions Slide Note Contents Index References | We conclude this presentation with some brief accounts on the status of our work. |
|
|
|
Further Information |
Web resources about EP Slide Note Contents Index References |
|
|
Elucidative Programming
Course home Author home About producing this web Previous lecture (top) Next lecture (top) Previous lecture (bund) Next lecture (bund)
Generated: December 2, 2005, 13:12:37