Last commit for TODO.txt: 74abbb1e42643a4f9b6803134faaae0d6f75ff5f

Got Jon's code set up and added some basic notes

Miriam Melnick [2012-02-29 05:15:36]
Got Jon's code set up and added some basic notes
  1. Outline of program:
  2.  
  3. User input:
  4. MyClass.java
  5. /*@meta
  6. * property*/
  7. f(...) {
  8. }
  9.  
  10. Preprocessor:
  11. save old MyClass.java as MyClass.java.bak
  12. create new MyClass.java
  13. _f(...) {
  14. } //original f function
  15.  
  16. f(...) {
  17. } // f wrapper
  18.  
  19. what does the wrapper do?
  20. logs inputs (i)
  21. clones process
  22. clone: modifies inputs in cloned process (i')
  23. clone: logs modified inputs (i')
  24. clone: predicts output based on modified inputs (o')
  25. clone: logs predicted output (o')
  26. clone: runs _f(i') --> o''
  27. clone: logs o''
  28. clone: dies
  29. runs f(i) --> o
  30. logs o
  31.  
  32. calls compare --> outputs result of comparison of {i,i'} and {o,o',o''}
  33.  
  34. Runtime:
  35. run the application (which should call MyClass.f(...)) --> check log
  36.