Преглед на файлове

more edits to chapter 5

Jeremy Siek преди 9 години
родител
ревизия
0048133414
променени са 2 файла, в които са добавени 151 реда и са изтрити 31 реда
  1. 110 4
      all.bib
  2. 41 27
      book.tex

+ 110 - 4
all.bib

@@ -2,13 +2,120 @@
 %% http://bibdesk.sourceforge.net/
 
 
-%% Created for Jeremy Siek at 2016-05-20 13:19:42 -0400 
+%% Created for Jeremy Siek at 2016-06-03 14:32:05 -0400 
 
 
 %% Saved with string encoding Unicode (UTF-8) 
 
 
 
+@inproceedings{Blackburn:2004aa,
+	Acmid = {1005693},
+	Address = {New York, NY, USA},
+	Author = {Blackburn, Stephen M. and Cheng, Perry and McKinley, Kathryn S.},
+	Booktitle = {Proceedings of the Joint International Conference on Measurement and Modeling of Computer Systems},
+	Date-Added = {2016-06-03 18:31:28 +0000},
+	Date-Modified = {2016-06-03 18:31:30 +0000},
+	Doi = {10.1145/1005686.1005693},
+	Isbn = {1-58113-873-3},
+	Keywords = {generational, java, mark-sweep, reference counting, semi-space},
+	Location = {New York, NY, USA},
+	Numpages = {12},
+	Pages = {25--36},
+	Publisher = {ACM},
+	Series = {SIGMETRICS '04/Performance '04},
+	Title = {Myths and Realities: The Performance Impact of Garbage Collection},
+	Url = {http://doi.acm.org/10.1145/1005686.1005693},
+	Year = {2004},
+	Bdsk-Url-1 = {http://doi.acm.org/10.1145/1005686.1005693},
+	Bdsk-Url-2 = {http://dx.doi.org/10.1145/1005686.1005693}}
+
+@book{Jones:2011aa,
+	Author = {Jones, Richard and Hosking, Antony and Moss, Eliot},
+	Date-Added = {2016-06-03 18:30:32 +0000},
+	Date-Modified = {2016-06-03 18:30:35 +0000},
+	Edition = {1st},
+	Isbn = {1420082795, 9781420082791},
+	Publisher = {Chapman \& Hall/CRC},
+	Title = {The Garbage Collection Handbook: The Art of Automatic Memory Management},
+	Year = {2011}}
+
+@inproceedings{Cutler:2015aa,
+	Acmid = {2754184},
+	Address = {New York, NY, USA},
+	Author = {Cutler, Cody and Morris, Robert},
+	Booktitle = {Proceedings of the 2015 International Symposium on Memory Management},
+	Date-Added = {2016-06-03 18:28:11 +0000},
+	Date-Modified = {2016-06-03 18:28:13 +0000},
+	Doi = {10.1145/2754169.2754184},
+	Isbn = {978-1-4503-3589-8},
+	Keywords = {Garbage collection, memory management},
+	Location = {Portland, OR, USA},
+	Numpages = {12},
+	Pages = {131--142},
+	Publisher = {ACM},
+	Series = {ISMM '15},
+	Title = {Reducing Pause Times with Clustered Collection},
+	Url = {http://doi.acm.org/10.1145/2754169.2754184},
+	Year = {2015},
+	Bdsk-Url-1 = {http://doi.acm.org/10.1145/2754169.2754184},
+	Bdsk-Url-2 = {http://dx.doi.org/10.1145/2754169.2754184}}
+
+@inproceedings{Shidal:2015aa,
+	Acmid = {2754183},
+	Address = {New York, NY, USA},
+	Author = {Shidal, Jonathan and Spilo, Ari J. and Scheid, Paul T. and Cytron, Ron K. and Kavi, Krishna M.},
+	Booktitle = {Proceedings of the 2015 International Symposium on Memory Management},
+	Date-Added = {2016-06-03 18:25:03 +0000},
+	Date-Modified = {2016-06-03 18:25:06 +0000},
+	Doi = {10.1145/2754169.2754183},
+	Isbn = {978-1-4503-3589-8},
+	Keywords = {cache, garbage collection, reference counting},
+	Location = {Portland, OR, USA},
+	Numpages = {13},
+	Pages = {118--130},
+	Publisher = {ACM},
+	Series = {ISMM '15},
+	Title = {Recycling Trash in Cache},
+	Url = {http://doi.acm.org/10.1145/2754169.2754183},
+	Year = {2015},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QD3AxMTgtc2hpZGFsLnBkZtIXCxgZV05TLmRhdGFPEQGOAAAAAAGOAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADNyMDqSCsAAAC/bfEPcDExOC1zaGlkYWwucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX/Y2tN3Q8tQREYgAAAAAAABAAIAAAkgAAAAAAAAAAAAAAAAAAAAA2JpYgAAEAAIAADNyPkqAAAAEQAIAADTd3wLAAAAAQAQAL9t8QFDaDwABcByAAISKQACAD1NYWNpbnRvc2ggSEQ6VXNlcnM6AGpzaWVrOgBHb29nbGUgRHJpdmU6AGJpYjoAcDExOC1zaGlkYWwucGRmAAAOACAADwBwADEAMQA4AC0AcwBoAGkAZABhAGwALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACxVc2Vycy9qc2llay9Hb29nbGUgRHJpdmUvYmliL3AxMTgtc2hpZGFsLnBkZgATAAEvAAAVAAIADP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAKAApQCtAj8CQQJGAlECWgJoAmwCcwJ8AoECjgKRAqMCpgKrAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAq0=},
+	Bdsk-Url-1 = {http://doi.acm.org/10.1145/2754169.2754183},
+	Bdsk-Url-2 = {http://dx.doi.org/10.1145/2754169.2754183}}
+
+@inproceedings{Gupta:1999aa,
+	Author = {Gupta, Rajiv and Bod{\'\i}k, Rastislav},
+	Booktitle = {Compiler Construction},
+	Date-Added = {2016-05-30 13:01:40 +0000},
+	Date-Modified = {2016-05-30 13:02:53 +0000},
+	Pages = {107--121},
+	Publisher = {Springer},
+	Title = {Register Pressure Sensitive Redundancy Elimination},
+	Year = {1999},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QGHJlZy1wcmVzLXJlZHVuZC1lbGltLnBkZtIXCxgZV05TLmRhdGFPEQGyAAAAAAGyAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADNyMDqSCsAAAC/bfEYcmVnLXByZXMtcmVkdW5kLWVsaW0ucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX5BaNNxsdFQREYgAAAAAAABAAIAAAkgAAAAAAAAAAAAAAAAAAAAA2JpYgAAEAAIAADNyPkqAAAAEQAIAADTceoRAAAAAQAQAL9t8QFDaDwABcByAAISKQACAEZNYWNpbnRvc2ggSEQ6VXNlcnM6AGpzaWVrOgBHb29nbGUgRHJpdmU6AGJpYjoAcmVnLXByZXMtcmVkdW5kLWVsaW0ucGRmAA4AMgAYAHIAZQBnAC0AcAByAGUAcwAtAHIAZQBkAHUAbgBkAC0AZQBsAGkAbQAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIANVVzZXJzL2pzaWVrL0dvb2dsZSBEcml2ZS9iaWIvcmVnLXByZXMtcmVkdW5kLWVsaW0ucGRmAAATAAEvAAAVAAIADP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAKkArgC2AmwCbgJzAn4ChwKVApkCoAKpAq4CuwK+AtAC0wLYAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAto=},
+	Bdsk-Url-1 = {http://dx.doi.org/10.1007/978-3-540-49051-7_8}}
+
+@inproceedings{Liblit:2000aa,
+	Acmid = {325717},
+	Address = {New York, NY, USA},
+	Author = {Liblit, Ben and Aiken, Alexander},
+	Booktitle = {Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
+	Date-Added = {2016-05-21 15:17:40 +0000},
+	Date-Modified = {2016-05-21 15:17:43 +0000},
+	Doi = {10.1145/325694.325717},
+	Isbn = {1-58113-125-9},
+	Location = {Boston, MA, USA},
+	Numpages = {15},
+	Pages = {199--213},
+	Publisher = {ACM},
+	Series = {POPL '00},
+	Title = {Type Systems for Distributed Data Structures},
+	Url = {http://doi.acm.org/10.1145/325694.325717},
+	Year = {2000},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QD3AxOTktbGlibGl0LnBkZtIXCxgZV05TLmRhdGFPEQGOAAAAAAGOAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADNyMDqSCsAAAC/bfEPcDE5OS1saWJsaXQucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXy3WdNl9IRQREYgAAAAAAABAAIAAAkgAAAAAAAAAAAAAAAAAAAAA2JpYgAAEAAIAADNyPkqAAAAEQAIAADTZizEAAAAAQAQAL9t8QFDaDwABcByAAISKQACAD1NYWNpbnRvc2ggSEQ6VXNlcnM6AGpzaWVrOgBHb29nbGUgRHJpdmU6AGJpYjoAcDE5OS1saWJsaXQucGRmAAAOACAADwBwADEAOQA5AC0AbABpAGIAbABpAHQALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACxVc2Vycy9qc2llay9Hb29nbGUgRHJpdmUvYmliL3AxOTktbGlibGl0LnBkZgATAAEvAAAVAAIADP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAKAApQCtAj8CQQJGAlECWgJoAmwCcwJ8AoECjgKRAqMCpgKrAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAq0=},
+	Bdsk-Url-1 = {http://doi.acm.org/10.1145/325694.325717},
+	Bdsk-Url-2 = {http://dx.doi.org/10.1145/325694.325717}}
+
 @techreport{Dijkstra:1982aa,
 	Author = {E. W. Dijkstra},
 	Date-Added = {2016-05-20 17:16:31 +0000},
@@ -6316,7 +6423,7 @@
 	Number = {UCB/CSD-99-1072},
 	Title = {Type Systems for Distributed Data Structures},
 	Year = {1999},
-	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QHi4uL0Ryb3Bib3gvYmliL0NTRC05OS0xMDcyLnBkZtIXCxgZV05TLmRhdGFPEQGEAAAAAAGEAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADNyMDqSCsAAAAOauEPQ1NELTk5LTEwNzIucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJIG3dAc9hNQREYgAAAAAAABAAMAAAkgAAAAAAAAAAAAAAAAAAAAA2JpYgAAEAAIAADNyPkqAAAAEQAIAADQHS5TAAAAAQAQAA5q4QAOad0ABcByAAISKQACADhNYWNpbnRvc2ggSEQ6VXNlcnM6AGpzaWVrOgBEcm9wYm94OgBiaWI6AENTRC05OS0xMDcyLnBkZgAOACAADwBDAFMARAAtADkAOQAtADEAMAA3ADIALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACdVc2Vycy9qc2llay9Ecm9wYm94L2JpYi9DU0QtOTktMTA3Mi5wZGYAABMAAS8AABUAAgAM//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4ArwC0ALwCRAJGAksCVgJfAm0CcQJ4AoEChgKTApYCqAKrArAAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAACsg==}}
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QD0NTRC05OS0xMDcyLnBkZtIXCxgZV05TLmRhdGFPEQGOAAAAAAGOAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADNyMDqSCsAAAC/bfEPQ1NELTk5LTEwNzIucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXy3xdNl9OZQREYgAAAAAAABAAIAAAkgAAAAAAAAAAAAAAAAAAAAA2JpYgAAEAAIAADNyPkqAAAAEQAIAADTZi0mAAAAAQAQAL9t8QFDaDwABcByAAISKQACAD1NYWNpbnRvc2ggSEQ6VXNlcnM6AGpzaWVrOgBHb29nbGUgRHJpdmU6AGJpYjoAQ1NELTk5LTEwNzIucGRmAAAOACAADwBDAFMARAAtADkAOQAtADEAMAA3ADIALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACxVc2Vycy9qc2llay9Hb29nbGUgRHJpdmUvYmliL0NTRC05OS0xMDcyLnBkZgATAAEvAAAVAAIADP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAKAApQCtAj8CQQJGAlECWgJoAmwCcwJ8AoECjgKRAqMCpgKrAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAq0=}}
 
 @article{De-Millo:1979aa,
 	Acmid = {359106},
@@ -29890,8 +29997,7 @@ on graph transformation.},
 	Series = LNCS,
 	Title = {Type Systems for Distributed Data Sharing},
 	Year = 2003,
-	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QIS4uLy4uLy4uL3BhcGVycy9zaGFyaW5nLXR5cGVzLnBkZtIXCxgZV05TLmRhdGFPEQF6AAAAAAF6AAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADBD6WHSCsAAABPmRERc2hhcmluZy10eXBlcy5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8pC8EJ6TYAAAAAAAAAAAADAAIAAAkgAAAAAAAAAAAAAAAAAAAABnBhcGVycwAQAAgAAMEP+ecAAAARAAgAAMEKPZYAAAABAAwAT5kRAE6kUwBGyTYAAgAwTWFjaW50b3NoIEhEOlVzZXJzOnNpZWs6cGFwZXJzOnNoYXJpbmctdHlwZXMucGRmAA4AJAARAHMAaABhAHIAaQBuAGcALQB0AHkAcABlAHMALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACNVc2Vycy9zaWVrL3BhcGVycy9zaGFyaW5nLXR5cGVzLnBkZgAAEwABLwAAFQACAAv//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgCyALcAvwI9Aj8CRAJPAlgCZgJqAnECegJ/AowCjwKhAqQCqQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAKr},
-	Bdsk-File-2 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QEXNoYXJpbmctdHlwZXMucGRm0hcLGBlXTlMuZGF0YU8RAZYAAAAAAZYAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM3IwOpIKwAAAL9t8RFzaGFyaW5nLXR5cGVzLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv4oC0Q88lAAAAAAAAAAAAAEAAgAACSAAAAAAAAAAAAAAAAAAAAADYmliAAAQAAgAAM3I+SoAAAARAAgAANEPguQAAAABABAAv23xAUNoPAAFwHIAAhIpAAIAP01hY2ludG9zaCBIRDpVc2VyczoAanNpZWs6AEdvb2dsZSBEcml2ZToAYmliOgBzaGFyaW5nLXR5cGVzLnBkZgAADgAkABEAcwBoAGEAcgBpAG4AZwAtAHQAeQBwAGUAcwAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIALlVzZXJzL2pzaWVrL0dvb2dsZSBEcml2ZS9iaWIvc2hhcmluZy10eXBlcy5wZGYAEwABLwAAFQACAAz//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgCiAKcArwJJAksCUAJbAmQCcgJ2An0ChgKLApgCmwKtArACtQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAK3}}
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QEXNoYXJpbmctdHlwZXMucGRm0hcLGBlXTlMuZGF0YU8RAZYAAAAAAZYAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM3IwOpIKwAAAL9t8RFzaGFyaW5nLXR5cGVzLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv4oC0Q88lAAAAAAAAAAAAAEAAgAACSAAAAAAAAAAAAAAAAAAAAADYmliAAAQAAgAAM3I+SoAAAARAAgAANEPguQAAAABABAAv23xAUNoPAAFwHIAAhIpAAIAP01hY2ludG9zaCBIRDpVc2VyczoAanNpZWs6AEdvb2dsZSBEcml2ZToAYmliOgBzaGFyaW5nLXR5cGVzLnBkZgAADgAkABEAcwBoAGEAcgBpAG4AZwAtAHQAeQBwAGUAcwAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIALlVzZXJzL2pzaWVrL0dvb2dsZSBEcml2ZS9iaWIvc2hhcmluZy10eXBlcy5wZGYAEwABLwAAFQACAAz//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgCiAKcArwJJAksCUAJbAmQCcgJ2An0ChgKLApgCmwKtArACtQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAK3}}
 
 @article{Choi:2003sl,
 	Address = {New York, NY, USA},

+ 41 - 27
book.tex

@@ -4094,51 +4094,65 @@ first element is a 3-tuple and second element is a 2-tuple.
 %%  the garbage, so its time complexity only depends on the
 %%  amount of live data.\\ --Jeremy}
 
-[extol the virtues of copying collection here --Jeremy]
-
+There are many alternatives to copying collectors (and their older
+siblings, the generational collectors) when its comes to garbage
+collection, such as mark-and-sweep and reference counting.  The
+strengths of copying collectors are that allocation is fast (just a
+test and pointer increment), there is no fragmentation, cyclic garbage
+is collected, and the time complexity of collection only depends on
+the amount of live data, and not on the amount of
+garbage~\citep{Wilson:1992fk}. The main disadvantage of two-space
+copying collectors is that they use a lot of space, though that
+problem is ameliorated in the generational collectors.  Racket and
+Scheme programs tend to allocate many small objects and generate a lot
+of garbage, so copying and generational collectors are a good fit.  Of
+course, garbage collection is an active research topic, especially
+concurrent garbage collection~\citep{Tene:2011kx}. Researchers are
+continuously development new techniques and revisiting old
+trade-offs~\citep{Blackburn:2004aa,Jones:2011aa,Shahriyar:2013aa,Cutler:2015aa,Shidal:2015aa}.
 
 \subsection{Graph Copying via Cheney's Algorithm}
 \label{sec:cheney}
 
 Let us take a closer look at how the copy works. The allocated objects
-and pointers essentially form a graph and we need to copy the part of
+and pointers can be viewed as a graph and we need to copy the part of
 the graph that is reachable from the root set. To make sure we copy
-all of the reachable nodes, we need an exhaustive graph traversal
-algorithm, such as depth-first search or breadth-first
+all of the reachable vertices in the graph, we need an exhaustive
+graph traversal algorithm, such as depth-first search or breadth-first
 search~\citep{Moore:1959aa,Cormen:2001uq}. Recall that such algorithms
-take into account the possibility of cycles by marking which objects
+take into account the possibility of cycles by marking which vertices
 have already been visited, so as to ensure termination of the
 algorithm. These search algorithms also use a data structure such as a
-stack or queue as a to-do list to keep track of the objects that need
+stack or queue as a to-do list to keep track of the vertices that need
 to be visited. We shall use breadth-first search and a trick due to
 Cheney~\citep{Cheney:1970aa} for simultaneously representing the queue
-and copying the objects into the ToSpace.
+and copying tuples into the ToSpace.
 
 Figure~\ref{fig:cheney} shows several snapshots of the ToSpace as the
 copy progresses. The queue is represented by a chunk of contiguous
 memory at the beginning of the ToSpace, using two pointers to track
 the front and the back of the queue. The algorithm starts by copying
-all objects that are immediately reachable from the root set into the
-ToSpace to form the initial queue.  When we copy an object, we mark
-the old object to indicate that it has been visited. (We discuss the
+all tuples that are immediately reachable from the root set into the
+ToSpace to form the initial queue.  When we copy a tuple, we mark the
+old tuple to indicate that it has been visited. (We discuss the
 marking in Section~\ref{sec:data-rep-gc}.) Note that any pointers
-inside the copied objects in the queue still point back to the
+inside the copied tuples in the queue still point back to the
 FromSpace. Once the initial queue has been created, the algorithm
-enters a loop in which it repeatedly processes the object at the front
-of the queue and pops it off the queue.  To process an object, the
-algorithm copies all the objects that are directly reachable from it
-to the ToSpace, placing them at the back of the queue. The algorithm
-then updates the pointers in the popped object so they point to the
-newly copied objects. So getting back to Figure~\ref{fig:cheney}, in
-the first step we copy the tuple whose second element is $42$ to the
-back of the queue. The other pointer goes to a tuple that has already
-been copied, so we do not need to copy it again, but we do need to
-update the pointer to the new location. This can be accomplished by
-storing a \emph{forwarding} pointer to the new location in the old
-object, back when we initially copied the object into the
-ToSpace. This completes one step of the algorithm. The algorithm
-continues in this way until the front of the queue is empty, that is,
-until the front catches up with the back.
+enters a loop in which it repeatedly processes the tuple at the front
+of the queue and pops it off the queue.  To process a tuple, the
+algorithm copies all the tuple that are directly reachable from it to
+the ToSpace, placing them at the back of the queue. The algorithm then
+updates the pointers in the popped tuple so they point to the newly
+copied tuples. Getting back to Figure~\ref{fig:cheney}, in the first
+step we copy the tuple whose second element is $42$ to the back of the
+queue. The other pointer goes to a tuple that has already been copied,
+so we do not need to copy it again, but we do need to update the
+pointer to the new location. This can be accomplished by storing a
+\emph{forwarding} pointer to the new location in the old tuple, back
+when we initially copied the tuple into the ToSpace. This completes
+one step of the algorithm. The algorithm continues in this way until
+the front of the queue is empty, that is, until the front catches up
+with the back.
 
 
 \begin{figure}[tbp]