# echo "*******************************************************************" echo "DEMETER TOOLS/C++ DEMO (without graphical interface part)" echo "*******************************************************************" echo "(C) 1991 Northeastern University" echo "*******************************************************************" #echo "Nacho please check whether I forgot something important" #echo "Runs in ~lieber/demeter/sem/workshop/g-intros/g-demo" #echo "Need the following graphically:" # #echo "Overview pictures for system" # #echo "Can please Paul do the following on a DEC station or Mac" #echo "Class dictionary" #echo "Class dictionary with growth phases shown" #echo "Class dictionary with propagation graphs shown" # #echo "Can please Walter supply the following" #echo "Picture of directory structure" # #echo "Other promotional material to be distributed at demo" #echo "The Demeter System/C++" #echo "Demeter System Publications" #echo "Demeter Tools/C++ Quick Reference" #echo "Graph-Based Software Engineering: Concise Specifications ..." # cd generated rm -r * cd .. echo "*******************************************************************" echo "Input object" echo "*******************************************************************" cat U-1/demeter-input echo "*******************************************************************" echo "Class dictionary" echo "*******************************************************************" cat cd cd generated cp ../cd . echo "*******************************************************************" echo "Directory structure at the beginning" echo "*******************************************************************" find . -print echo "*******************************************************************" echo "Calling sem-check" echo "*******************************************************************" sem-check cd echo "*******************************************************************" echo "Directory structure after sem-check" echo "*******************************************************************" find . -print echo "*******************************************************************" echo "The beginning of cd-param-exp: parameterization expanded" echo "*******************************************************************" head -20 cd-param-exp echo "*******************************************************************" echo "The beginning of cd-com-exp: common parts expanded" echo "*******************************************************************" head -20 cd-com-exp echo "*******************************************************************" echo "The beginning of cd-ffsets: an analysis of the grammar" echo "*******************************************************************" head -20 cd-ffsets echo "*******************************************************************" echo "Calling generate" echo "*******************************************************************" generate echo "*******************************************************************" echo "Directory structure after generate" echo "*******************************************************************" find . -print #echo "*******************************************************************" #echo "Hierarchy Architecture" #echo "*******************************************************************" #cat ../hierarchy echo "*******************************************************************" echo "A sample propagation pattern for counting all identifiers" echo "*******************************************************************" cat COMMON/DEM-count-ident.pp #echo "*******************************************************************" #echo "The end of the Makefile for compilation" #echo "*******************************************************************" #tail -20 Makefile echo "*******************************************************************" echo "The end of the lex (UNIX scanner generator) input file" echo "*******************************************************************" tail -20 U-1/SCANNER/lex-DEM echo "*******************************************************************" echo "The end of file user-calls.i; serves as main program" echo "*******************************************************************" tail -20 U-1/user-calls.i echo "*******************************************************************" echo "The beginning of the interface file" echo "*******************************************************************" head -100 NOT-MOD/INTER/interface.h echo "*******************************************************************" echo "Generated implementation of start class" echo "*******************************************************************" cat NOT-MOD/IMPL/Conglomerate_DEM.c echo "*******************************************************************" echo "A fragment of: man Universal" echo "*******************************************************************" demeter-man Universal | tail -100 echo "*******************************************************************" echo "A fragment of: man repetition" echo "*******************************************************************" demeter-man repetition | head -29 cd U-1 compile echo "*******************************************************************" echo "After compilation: running the self-test of the class library" echo "*******************************************************************" cp ../../U-1/demeter-input . run |tail -50 cp ../../U-1/both.pp . echo "*******************************************************************" echo "Propagation patterns" echo "*******************************************************************" cat both.pp echo "*******************************************************************" echo "Running propagate" echo "*******************************************************************" propagate echo "*******************************************************************" echo "The generated propagation graphs" echo "*******************************************************************" cat both*.graph echo "*******************************************************************" echo "The generated C++ code from the propagation pattern" echo "*******************************************************************" head -50 both-DEM.c echo "*******************************************************************" echo "How much effort have we saved?" echo "*******************************************************************" cat propagate.benefit echo "*******************************************************************" echo "Running the headers tool which generates the interface files" echo "*******************************************************************" headers echo "*******************************************************************" echo "Interface for the start class in the class dictionary" echo "*******************************************************************" cat INTER/Conglomerate.h cp ../../U-1/user-calls.i . echo "*******************************************************************" echo "The end of file user-calls.i; serves as main program" echo "*******************************************************************" tail -20 user-calls.i #compile >& scratch echo "*******************************************************************" echo "compile" echo "*******************************************************************" compile > scratch echo "*******************************************************************" echo "After compilation: running the program" echo "*******************************************************************" cp ../../U-1/demeter-input . run echo "*******************************************************************" echo "Localization of interface with propagation patterns" echo "*******************************************************************" cp ../../U-1/print-only-1.pp . cat print-only-1.pp echo "*******************************************************************" echo "Change interface" echo "*******************************************************************" cp ../../U-1/print-only-2.pp . cat print-only-2.pp echo "*******************************************************************" echo "Propagate the functions with the new interface" echo "*******************************************************************" propagate print-only-2.pp echo "*******************************************************************" echo "Benefit" echo "*******************************************************************" cat propagate.benefit echo "*******************************************************************" echo "Collect all officers into a list" echo "The starting point is this system supplied propagation pattern" echo "*******************************************************************" cat ../COMMON/DEM-collect-ident.pp echo "*******************************************************************" echo "After adapting the propagation pattern" echo "*******************************************************************" cp ../../U-1/collect-officers.pp . cat collect-officers.pp # to avoid conflicts rm *.c echo "*******************************************************************" echo "Propagate the functions" echo "*******************************************************************" propagate collect-officers.pp headers cp ../../U-1/officers-user-c.i user-calls.i echo "*******************************************************************" echo "The end of file user-calls.i; serves as main program" echo "*******************************************************************" tail -20 user-calls.i echo "*******************************************************************" echo "compile" echo "*******************************************************************" compile > scratch echo "*******************************************************************" echo "After compilation: running the program" echo "*******************************************************************" cp ../../U-1/demeter-input . run cp ../../U-1/growth-plan . echo "*******************************************************************" echo "Growth-plan for debugging the code" echo "*******************************************************************" cat growth-plan echo "*******************************************************************" echo "Check growth-plan and create class dictionary graph for each phase" echo "*******************************************************************" gp-check -d growth-plan echo "*******************************************************************" echo "Class dictionary for first phase" echo "*******************************************************************" cat GP0/cd0 echo "*************" echo "Produced by" echo "*************" #cat tutorial echo "G/g-intros/g-demo/tutorial" echo "where G = ~lieber/demeter/sem/workshop"