Jeremy Siek 9 жил өмнө
parent
commit
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/
 %% 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) 
 %% 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,
 @techreport{Dijkstra:1982aa,
 	Author = {E. W. Dijkstra},
 	Author = {E. W. Dijkstra},
 	Date-Added = {2016-05-20 17:16:31 +0000},
 	Date-Added = {2016-05-20 17:16:31 +0000},
@@ -6316,7 +6423,7 @@
 	Number = {UCB/CSD-99-1072},
 	Number = {UCB/CSD-99-1072},
 	Title = {Type Systems for Distributed Data Structures},
 	Title = {Type Systems for Distributed Data Structures},
 	Year = {1999},
 	Year = {1999},
-	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QHi4uL0Ryb3Bib3gvYmliL0NTRC05OS0xMDcyLnBkZtIXCxgZV05TLmRhdGFPEQGEAAAAAAGEAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADNyMDqSCsAAAAOauEPQ1NELTk5LTEwNzIucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJIG3dAc9hNQREYgAAAAAAABAAMAAAkgAAAAAAAAAAAAAAAAAAAAA2JpYgAAEAAIAADNyPkqAAAAEQAIAADQHS5TAAAAAQAQAA5q4QAOad0ABcByAAISKQACADhNYWNpbnRvc2ggSEQ6VXNlcnM6AGpzaWVrOgBEcm9wYm94OgBiaWI6AENTRC05OS0xMDcyLnBkZgAOACAADwBDAFMARAAtADkAOQAtADEAMAA3ADIALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACdVc2Vycy9qc2llay9Ecm9wYm94L2JpYi9DU0QtOTktMTA3Mi5wZGYAABMAAS8AABUAAgAM//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4ArwC0ALwCRAJGAksCVgJfAm0CcQJ4AoEChgKTApYCqAKrArAAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAACsg==}}
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QD0NTRC05OS0xMDcyLnBkZtIXCxgZV05TLmRhdGFPEQGOAAAAAAGOAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADNyMDqSCsAAAC/bfEPQ1NELTk5LTEwNzIucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXy3xdNl9OZQREYgAAAAAAABAAIAAAkgAAAAAAAAAAAAAAAAAAAAA2JpYgAAEAAIAADNyPkqAAAAEQAIAADTZi0mAAAAAQAQAL9t8QFDaDwABcByAAISKQACAD1NYWNpbnRvc2ggSEQ6VXNlcnM6AGpzaWVrOgBHb29nbGUgRHJpdmU6AGJpYjoAQ1NELTk5LTEwNzIucGRmAAAOACAADwBDAFMARAAtADkAOQAtADEAMAA3ADIALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACxVc2Vycy9qc2llay9Hb29nbGUgRHJpdmUvYmliL0NTRC05OS0xMDcyLnBkZgATAAEvAAAVAAIADP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAKAApQCtAj8CQQJGAlECWgJoAmwCcwJ8AoECjgKRAqMCpgKrAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAq0=}}
 
 
 @article{De-Millo:1979aa,
 @article{De-Millo:1979aa,
 	Acmid = {359106},
 	Acmid = {359106},
@@ -29890,8 +29997,7 @@ on graph transformation.},
 	Series = LNCS,
 	Series = LNCS,
 	Title = {Type Systems for Distributed Data Sharing},
 	Title = {Type Systems for Distributed Data Sharing},
 	Year = 2003,
 	Year = 2003,
-	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QIS4uLy4uLy4uL3BhcGVycy9zaGFyaW5nLXR5cGVzLnBkZtIXCxgZV05TLmRhdGFPEQF6AAAAAAF6AAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADBD6WHSCsAAABPmRERc2hhcmluZy10eXBlcy5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8pC8EJ6TYAAAAAAAAAAAADAAIAAAkgAAAAAAAAAAAAAAAAAAAABnBhcGVycwAQAAgAAMEP+ecAAAARAAgAAMEKPZYAAAABAAwAT5kRAE6kUwBGyTYAAgAwTWFjaW50b3NoIEhEOlVzZXJzOnNpZWs6cGFwZXJzOnNoYXJpbmctdHlwZXMucGRmAA4AJAARAHMAaABhAHIAaQBuAGcALQB0AHkAcABlAHMALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASACNVc2Vycy9zaWVrL3BhcGVycy9zaGFyaW5nLXR5cGVzLnBkZgAAEwABLwAAFQACAAv//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgCyALcAvwI9Aj8CRAJPAlgCZgJqAnECegJ/AowCjwKhAqQCqQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAKr},
-	Bdsk-File-2 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QEXNoYXJpbmctdHlwZXMucGRm0hcLGBlXTlMuZGF0YU8RAZYAAAAAAZYAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM3IwOpIKwAAAL9t8RFzaGFyaW5nLXR5cGVzLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv4oC0Q88lAAAAAAAAAAAAAEAAgAACSAAAAAAAAAAAAAAAAAAAAADYmliAAAQAAgAAM3I+SoAAAARAAgAANEPguQAAAABABAAv23xAUNoPAAFwHIAAhIpAAIAP01hY2ludG9zaCBIRDpVc2VyczoAanNpZWs6AEdvb2dsZSBEcml2ZToAYmliOgBzaGFyaW5nLXR5cGVzLnBkZgAADgAkABEAcwBoAGEAcgBpAG4AZwAtAHQAeQBwAGUAcwAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIALlVzZXJzL2pzaWVrL0dvb2dsZSBEcml2ZS9iaWIvc2hhcmluZy10eXBlcy5wZGYAEwABLwAAFQACAAz//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgCiAKcArwJJAksCUAJbAmQCcgJ2An0ChgKLApgCmwKtArACtQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAK3}}
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QEXNoYXJpbmctdHlwZXMucGRm0hcLGBlXTlMuZGF0YU8RAZYAAAAAAZYAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM3IwOpIKwAAAL9t8RFzaGFyaW5nLXR5cGVzLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv4oC0Q88lAAAAAAAAAAAAAEAAgAACSAAAAAAAAAAAAAAAAAAAAADYmliAAAQAAgAAM3I+SoAAAARAAgAANEPguQAAAABABAAv23xAUNoPAAFwHIAAhIpAAIAP01hY2ludG9zaCBIRDpVc2VyczoAanNpZWs6AEdvb2dsZSBEcml2ZToAYmliOgBzaGFyaW5nLXR5cGVzLnBkZgAADgAkABEAcwBoAGEAcgBpAG4AZwAtAHQAeQBwAGUAcwAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIALlVzZXJzL2pzaWVrL0dvb2dsZSBEcml2ZS9iaWIvc2hhcmluZy10eXBlcy5wZGYAEwABLwAAFQACAAz//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgCiAKcArwJJAksCUAJbAmQCcgJ2An0ChgKLApgCmwKtArACtQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAK3}}
 
 
 @article{Choi:2003sl,
 @article{Choi:2003sl,
 	Address = {New York, NY, USA},
 	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
 %%  the garbage, so its time complexity only depends on the
 %%  amount of live data.\\ --Jeremy}
 %%  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}
 \subsection{Graph Copying via Cheney's Algorithm}
 \label{sec:cheney}
 \label{sec:cheney}
 
 
 Let us take a closer look at how the copy works. The allocated objects
 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
 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
 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
 have already been visited, so as to ensure termination of the
 algorithm. These search algorithms also use a data structure such as a
 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
 to be visited. We shall use breadth-first search and a trick due to
 Cheney~\citep{Cheney:1970aa} for simultaneously representing the queue
 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
 Figure~\ref{fig:cheney} shows several snapshots of the ToSpace as the
 copy progresses. The queue is represented by a chunk of contiguous
 copy progresses. The queue is represented by a chunk of contiguous
 memory at the beginning of the ToSpace, using two pointers to track
 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
 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
 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
 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]
 \begin{figure}[tbp]