Systolic structuring algorithm in steps

Providing the source code measures the gap between theory and reality.
A.S. Tanenbaum, Operating Systems, Design and Implementation, Prentice-Hall, 1987.

This page contains actual code that has been restructured using the technology discussed in this paper.

Please find here the Original code. In order to find out the meaning of the table below, you can click on the links in the first row. Of course, the complete explanation of the functionality of the tools that we used is in the accompanying paper.

Code after initial restructuring by Sneed's reengineering workbench. After this restructuring step, the other steps are in the table below. Note, that we deleted the DATA DIVISION since we did not need to make any changes to it. It is also not necessary to find out yourself what all the differences are between steps: we put in the second column all the differences. This gives you an idea of the impact of the components that we applied to the code.
src diff #GO c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 c13 c14 c16 c17 c18 c19
db.00   87                                    
db.01 00-01 87                                    
db.02 01-02 87                                    
db.03 02-03 87                                    
db.04 03-04 87                                    
db.05 04-05 87                                    
db.06 05-06 102                                    
db.07 06-07 63                                    
db.08 07-08 63                                    
db.09 08-09 50                                    
db.10 09-10 50                                    
db.11 10-11 46                                    
db.12 11-12 46                                    
db.13 12-13 43                                    
db.14 13-14 43                                    
db.15 14-15 40                                    
db.16 15-16 40                                    
db.17 16-17 37                                    
db.18 17-18 37                                    
db.19 18-19 35                                    
db.20 19-20 35                                    
db.21 20-21 33                                    
db.22 21-22 33                                    
db.23 22-23 31                                    
db.24 23-24 31                                    
db.25 24-25 30                                    
db.26 25-26 30                                    
db.27 26-27 29                                    
db.28 27-28 29                                    
db.29 28-29 29                                    
db.30 29-30 29                                    
db.31 30-31 28                                    
db.32 31-32 28                                    
db.33 32-33 27                                    
db.34 33-34 27                                    
db.35 34-35 26                                    
db.36 35-36 26                                    
db.37 36-37 25                                    
db.38 37-38 25                                    
db.39 38-39 24                                    
db.40 39-40 24                                    
db.41 40-41 23                                    
db.42 41-42 23                                    
db.43 42-43 22                                    
db.44 43-44 22                                    
db.45 44-45 21                                    
db.46 45-46 21                                    
db.47 46-47 20                                    
db.48 47-48 20                                    
db.49 48-49 19                                    
db.50 49-50 19                                    
db.51 50-51 18                                    
db.52 51-52 18                                    
db.53 52-53 17                                    
db.54 53-54 17                                    
db.55 54-55 17                                    
db.56 55-56 2                                    
db.57 56-57 1                                    
db.58 57-58 1                                    
db.59 58-59 0                                    
db.60 59-60 0                                    
db.61 60-61 0                                    
db.62 61-62 0                                    
db.63 62-63 0                                    
db.64 63-64 0                                    
db.65 64-65 0                                    
db.66 65-66 0                                    
db.67 66-67 0                                    
db.68 67-68 0                                    

Explanation of the Columns

src
diff
#GO
c01AddEndIf
c02RemDot
c03FlowOpt
c04ElimDeadCode
c05AddBarSec
c06ElimGoDep
c07ElimGo
c08MovePar
c09SwitchPar
c10Distribute
c11ElimCont
c12ReplacePar
c13UnfoldPar
c14RemDoubles
c15Cluster
c16NormCond
c17RemExitPar
c18RemEmptySec