changeset 9:dac0b8db9e72

Submitted version of HotPar 2012 PStack + VMS paper -- with helpers
author Me@portablequad
date Thu, 02 Feb 2012 12:22:53 -0800
parents bc4dd419ed1a
children fdd66fbc9403
files 0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/07_F_26__The_Questions__blank.txt 0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/bib_for_papers.bib 0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/plain.bst 0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/url.sty 0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/usetex-v1-anon.cls 0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/usetex-v1.cls
diffstat 6 files changed, 3500 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/07_F_26__The_Questions__blank.txt	Thu Feb 02 12:22:53 2012 -0800
     1.3 @@ -0,0 +1,100 @@
     1.4 +
     1.5 +
     1.6 +1) What are the problems the authors are trying to solve? 
     1.7 +    When done, for each problem, how does one decide the value of a proposed solution?  Suggest a priority domain for deciding whether to use a proposed solution.
     1.8 +
     1.9 +The problem is 
    1.10 +
    1.11 +A priority domain for deciding the value of some proposed solution to this problem is
    1.12 +
    1.13 +The value of this solution is determined by
    1.14 +
    1.15 +
    1.16 +
    1.17 +2) What "things" does the proposed solution to this problem enable?
    1.18 +     What benefit to reader is bought by each "thing", & what related to the "thing", gives the benefit.
    1.19 +     What details are unique about the proposed solution that enables the thing that gives benefit?
    1.20 +     How does that uniqueness enable or achieve the thing?
    1.21 +
    1.22 +It enables
    1.23 +
    1.24 +The benefit to me is
    1.25 +
    1.26 +Unique details of solution that enable the thing gives benefit are 
    1.27 +
    1.28 +The uniqueness enables the thing that gives benefit by
    1.29 +
    1.30 +
    1.31 +
    1.32 +3) What are the fundamentals underlying the problem?  
    1.33 +     What makes this problem hard? 
    1.34 +     What are the basic elements and forces of the problem that the proposed solution has to be in terms of, avoid, use to advantage? ie: gravity, invariant relationships, market forces, human capacity (avg level of real programmers, hubris, legacy is held onto, barriers to adoption), and so on
    1.35 +How does the proposed solution work within/relate to/address/take advantage of/deal with the fundamentals underlying the problem?
    1.36 +
    1.37 +The fundamentals are
    1.38 +
    1.39 +The hard part is
    1.40 +
    1.41 +The basic elements are
    1.42 +
    1.43 +The proposed solution
    1.44 +
    1.45 +
    1.46 +
    1.47 +4) What are other approaches and conventional wisdom to solving these problems?
    1.48 +    What benefits enabled by the proposed solution are not enabled by other work, and vice versa?
    1.49 +    How does each approach address something the others miss?
    1.50 +    Try to suggest groupings or categories for the various approaches.  
    1.51 +    Try to suggest ways multiple approaches may be combined to get more pros with fewer cons.
    1.52 +
    1.53 +Other approaches are
    1.54 +
    1.55 +A benefit enabled by the proposed that is not enabled by other work is
    1.56 +
    1.57 +Categories:
    1.58 +
    1.59 +Combining:
    1.60 +
    1.61 +
    1.62 +
    1.63 +5) What is/are the unique main "things" that enable what the proposed solution does?
    1.64 +    Sketch the details of each of these "things".  
    1.65 +    Did you detect any drawbacks, not stated in the paper, from the details?
    1.66 +    Did you see any really cool techniques?
    1.67 +
    1.68 +Unique main "things" are
    1.69 +
    1.70 +Drawbacks from details:
    1.71 +
    1.72 +Idea of
    1.73 +
    1.74 +
    1.75 +
    1.76 +6) What aspects of the implementation/proof/design need results given in order to convince you that the proposed solution delivers the stated benefits?
    1.77 +
    1.78 +They have to show
    1.79 +
    1.80 +
    1.81 +
    1.82 +7) What results did they show?
    1.83 +       Did they show results in all the needed aspects (which were left out)?
    1.84 +       Were the testing method and results shown good enough to convince you?
    1.85 +       Did you detect any cons, not stated in the paper, from the results?
    1.86 +
    1.87 +They showed 
    1.88 +
    1.89 +Con..  
    1.90 +
    1.91 +
    1.92 +
    1.93 +8) How do you think this work may provide some value to you in your future research?
    1.94 +
    1.95 +The work my provide value for me
    1.96 +
    1.97 +
    1.98 +
    1.99 +3 or more comments/questions:  (pick out the most important things to you from the discussion you gave above, or add things that were not brought out by the above questions.  I am asking for these as things to bring up during class).
   1.100 +
   1.101 +1)
   1.102 +
   1.103 + 
   1.104 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/bib_for_papers.bib	Thu Feb 02 12:22:53 2012 -0800
     2.3 @@ -0,0 +1,1257 @@
     2.4 +
     2.5 +
     2.6 +
     2.7 +""
     2.8 +@Article{,
     2.9 +  author =       {},
    2.10 +  title =        {},
    2.11 +  journal =      {},
    2.12 +  volume =       {},
    2.13 +  number =       {},
    2.14 +  year =         {},
    2.15 +  pages =        {}
    2.16 +}
    2.17 +
    2.18 +
    2.19 +
    2.20 +""
    2.21 +@Book{,
    2.22 +  author = 	     {},
    2.23 +  title = 	     {},
    2.24 +  publisher =    {},
    2.25 +  year =         {},
    2.26 +  pages =        {}
    2.27 +}
    2.28 +
    2.29 +
    2.30 +
    2.31 +""
    2.32 +@misc{,
    2.33 +  author =       {},
    2.34 +  title =        {},
    2.35 +  url =          {}
    2.36 +}
    2.37 +
    2.38 +
    2.39 +"Lamport paper with clock sync"
    2.40 +@article{Lamport78,
    2.41 + author = {Lamport, Leslie},
    2.42 + title = {Time, clocks, and the ordering of events in a distributed system},
    2.43 + journal = {Commun. ACM},
    2.44 + volume = {21},
    2.45 + issue = {7},
    2.46 + year = {1978},
    2.47 + pages = {558--565},
    2.48 + }
    2.49 +
    2.50 +"Lamport paper with mutex lock algorithm"
    2.51 +@article{Lamport87,
    2.52 + author = {Lamport, Leslie},
    2.53 + title = {A fast mutual exclusion algorithm},
    2.54 + journal = {ACM Trans. Comput. Syst.},
    2.55 + volume = {5},
    2.56 + issue = {1},
    2.57 + year = {1987},
    2.58 + pages = {1--11}
    2.59 +}
    2.60 +
    2.61 +"Dijkstra semaphore definition paper"
    2.62 +@inproceedings{Dijkstra67,
    2.63 + author = {Dijkstra, Edsger W.},
    2.64 + title = {The structure of the "{THE}"-multiprogramming system},
    2.65 + booktitle = {Proceedings of the first ACM symposium on Operating System Principles},
    2.66 + series = {SOSP '67},
    2.67 + year = {1967},
    2.68 + pages = {10.1--10.6}
    2.69 + }
    2.70 +
    2.71 +"Original coroutine paper"
    2.72 +@article{Conway63,
    2.73 + author = {Conway, Melvin E.},
    2.74 + title = {Design of a separable transition-diagram compiler},
    2.75 + journal = {Commun. ACM},
    2.76 + volume = {6},
    2.77 + issue = {7},
    2.78 + year = {1963},
    2.79 + pages = {396--408}
    2.80 +}
    2.81 +
    2.82 +"Component model book Leavens G, Sitaraman M(eds.). Foundations of Component-Based Systems. Cambridge University Press: Cambridge, 2000"
    2.83 +@Book{ComponentModel00,
    2.84 +  author = 	     {G Leavens and M Sitaraman (eds)},
    2.85 +  title = 	     {Foundations of Component-Based Systems},
    2.86 +  publisher =    {Cambridge University Press},
    2.87 +  year =         {2000}
    2.88 +}
    2.89 +
    2.90 +
    2.91 +"Hewitt Actors Ref on ArXiv"
    2.92 +@misc{Hewitt10,
    2.93 +  author =       {Carl Hewitt},
    2.94 +  title =        {Actor Model of Computation},
    2.95 +  year =         {2010},
    2.96 +  note =          {http://arxiv.org/abs/1008.1459}
    2.97 +}
    2.98 +
    2.99 +"Actors paper -- AGHA has a 1985 tech report looks like it introduces Actors as an execution model..?"
   2.100 +@article{Actors97,
   2.101 +author = {Agha,G. and Mason,I. and Smith,S. and Talcott,C.},
   2.102 +title = {A foundation for actor computation},
   2.103 +journal = {Journal of Functional Programming},
   2.104 +volume = {7},
   2.105 +number = {01},
   2.106 +pages = {1-72},
   2.107 +year = {1997},
   2.108 +}
   2.109 +
   2.110 +"Scheduler Activations: M onto N thread technique"
   2.111 +@article{SchedActivations,
   2.112 + author = {Anderson, Thomas E. and Bershad, Brian N. and Lazowska, Edward D. and Levy, Henry M.},
   2.113 + title = {Scheduler activations: effective kernel support for the user-level management of parallelism},
   2.114 + journal = {ACM Trans. Comput. Syst.},
   2.115 + volume = {10},
   2.116 + issue = {1},
   2.117 + month = {February},
   2.118 + year = {1992},
   2.119 + pages = {53--79}
   2.120 +} 
   2.121 +
   2.122 +"BOM in Manticore project: functional language for scheduling and concurrency"
   2.123 +@inproceedings{BOMinManticore,
   2.124 + author = {Fluet, Matthew and Rainey, Mike and Reppy, John and Shaw, Adam and Xiao, Yingqi},
   2.125 + title = {Manticore: a heterogeneous parallel language},
   2.126 + booktitle = {Proceedings of the 2007 workshop on Declarative aspects of multicore programming},
   2.127 + series = {DAMP '07},
   2.128 + year = {2007},
   2.129 + pages = {37--44},
   2.130 + numpages = {8}
   2.131 +} 
   2.132 +
   2.133 +
   2.134 +//=====================================
   2.135 +"Gain from Chaos tech report"
   2.136 +@techreport
   2.137 + {Halle92,
   2.138 +    Author = {Halle, K.S. and Chua, Leon O. and Anishchenko, V.S. and Safonova, M.A.},
   2.139 +    Title = {Signal Amplification via Chaos: Experimental Evidence},
   2.140 +    Institution = {EECS Department, University of California, Berkeley},
   2.141 +    Year = {1992},
   2.142 +    URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/1992/2223.html},
   2.143 +    Number = {UCB/ERL M92/130}
   2.144 +}
   2.145 +
   2.146 +
   2.147 +Reprinted in:
   2.148 +Madan, R. N. (1993) Chua’s Circuit : A Paradigm for Chaos, World Scientific, Singapore.
   2.149 +"Signal Amplification via Chaos: Experimental Evidence"
   2.150 +K.S. Halle, Leon O. Chua, V.S. Anishchenko and M.A. Safonova
   2.151 +pgs 290-308
   2.152 +
   2.153 +
   2.154 +"Spread Spectrum Communication Through Modulation of Chaos"
   2.155 +Halle K.S., Wu C.W., Itoh M., Chua L.O. Spread Spectrum Communication Through Modulation of Chaos. Int. J. of Bifur. and Chaos, (3):469–477. 1993.
   2.156 +cited by 232
   2.157 +
   2.158 +
   2.159 +"Experimental Demonstration of Secure Communications Via Chaotic Synchronization"
   2.160 +Kocarev V, Halle K.S., Eckert K., Chua L.O., Parlitz V. Experimental Demonstration of Secure Communications Via Chaotic Synchronization. Int. J. Bifur. and Chaos, (2):709 713. 1992.
   2.161 +
   2.162 +
   2.163 +//==========================================
   2.164 +
   2.165 +"BLIS 2010 HotPar: Leveraging Semantics Attached to Function Calls to Isolate Applications from Hardware"
   2.166 +@inproceedings
   2.167 + {BLISInHotPar,
   2.168 +    author =    {Sean Halle and Albert Cohen},
   2.169 +    booktitle = {HOTPAR '10: USENIX Workshop on Hot Topics in Parallelism},
   2.170 +    month =     {June},
   2.171 +    title =     {Leveraging Semantics Attached to Function Calls to Isolate Applications from Hardware},
   2.172 +    year =      {2010}
   2.173 + }
   2.174 +
   2.175 +"2011 HotPar: "
   2.176 +@inproceedings
   2.177 + {HotPar11,
   2.178 +    author =    {Sean Halle and Albert Cohen},
   2.179 +    booktitle = {HOTPAR '11: USENIX Workshop on Hot Topics in Parallelism},
   2.180 +    month =     {May},
   2.181 +    title =     {},
   2.182 +    year =      {2011}
   2.183 + }
   2.184 +
   2.185 +"VMS in LCPC 2011"
   2.186 +@article{VMSLCPC,
   2.187 +  author = {Sean Halle and Albert Cohen},
   2.188 +  title = {A Mutable Hardware Abstraction to Replace Threads},
   2.189 +  journal = {24th International Workshop on Languages and Compilers for Parallel Languages (LCPC11)},
   2.190 +  year = {2011} 
   2.191 +}
   2.192 +
   2.193 +
   2.194 +"A Framework to Support Research on Portable High Performance Parallelism"
   2.195 +@misc{FrameworkTechRep,
   2.196 +  Author =       {Halle, Sean and Nadezhkin, Dmitry and Cohen, Albert},
   2.197 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2010/ucsc-soe-10-02.pdf},
   2.198 +  Title =        {A Framework to Support Research on Portable High Performance Parallelism},
   2.199 +  Year = 2010
   2.200 +}
   2.201 +
   2.202 +"DKU Pattern for Performance Portable Parallel Software"
   2.203 +@misc{DKUTechRep,
   2.204 +  Author =       {Halle, Sean and Cohen, Albert},
   2.205 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-06.pdf},
   2.206 +  Title =        {DKU Pattern for Performance Portable Parallel Software},
   2.207 +  Year = 2009
   2.208 +}
   2.209 +
   2.210 +"An Extensible Parallel Language"
   2.211 +@misc{EQNLangTechRep,
   2.212 +  Author =       {Halle, Sean},
   2.213 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-16.pdf},
   2.214 +  Title =        {An Extensible Parallel Language},
   2.215 +  Year = 2009
   2.216 +}
   2.217 +
   2.218 +"A Hardware-Independent Parallel Operating System Abstraction Layer"
   2.219 +@misc{CTOSTechRep,
   2.220 +  Author =       {Halle, Sean},
   2.221 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-15.pdf},
   2.222 +  Title =        {A Hardware-Independent Parallel Operating System Abstraction LayerParallelism},
   2.223 +  Year = 2009
   2.224 +}
   2.225 +
   2.226 +"Parallel Language Extensions for Side Effects"
   2.227 +@misc{SideEffectsTechRep,
   2.228 +  Author =       {Halle, Sean and Cohen, Albert},
   2.229 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2009/ucsc-soe-09-14.pdf},
   2.230 +  Title =        {Parallel Language Extensions for Side Effects},
   2.231 +  Year = 2009
   2.232 +}
   2.233 +
   2.234 +
   2.235 +"BaCTiL: Base CodeTime Language"
   2.236 +@misc{BaCTiLTechRep,
   2.237 +  Author =       {Halle, Sean},
   2.238 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-08.pdf},
   2.239 +  Title =        {BaCTiL: Base CodeTime Language},
   2.240 +  Year = 2006
   2.241 +}
   2.242 +
   2.243 +
   2.244 +"The Elements of the CodeTime Software Platform"
   2.245 +@misc{CTPlatformTechRep,
   2.246 +  Author =       {Halle, Sean},
   2.247 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-09.pdf},
   2.248 +  Title =        {The Elements of the CodeTime Software Platform},
   2.249 +  Year = 2006
   2.250 +}
   2.251 +
   2.252 +
   2.253 +"A Scalable and Efficient Peer-to-Peer Run-Time System for a Hardware Independent Software Platform"
   2.254 +@misc{CTRTTechRep,
   2.255 +  Author =       {Halle, Sean},
   2.256 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-10.pdf},
   2.257 +  Title =        {A Scalable and Efficient Peer-to-Peer Run-Time System for a Hardware Independent Software Platform},
   2.258 +  Year = 2006
   2.259 +}
   2.260 +
   2.261 +
   2.262 +"The Big-Step Operational Semantics of CodeTime Circuits"
   2.263 +@misc{FrameworkTechRep,
   2.264 +  Author =       {Halle, Sean},
   2.265 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-11.pdf},
   2.266 +  Title =        {The Big-Step Operational Semantics of CodeTime Circuits},
   2.267 +  Year = 2006
   2.268 +}
   2.269 +
   2.270 +
   2.271 +"A Mental Framework for use in Creating Hardware Independent Parallel Languages"
   2.272 +@misc{FrameworkTechRep,
   2.273 +  Author =       {Halle, Sean},
   2.274 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2006/ucsc-crl-06-12.pdf},
   2.275 +  Title =        {A Mental Framework for use in Creating Hardware Independent Parallel Languages},
   2.276 +  Year = 2006
   2.277 +}
   2.278 +
   2.279 +
   2.280 +"The Case for an Integrated Software Platform for HEC Illustrated Using the CodeTime Platform"
   2.281 +@misc{CIPTechRep,
   2.282 +  Author =       {Halle, Sean},
   2.283 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2005/ucsc-crl-05-05.pdf},
   2.284 +  Title =        {The Case for an Integrated Software Platform for HEC Illustrated Using the CodeTime Platform},
   2.285 +  Year = 2005
   2.286 +}
   2.287 +
   2.288 +//==========================================
   2.289 +
   2.290 +
   2.291 +"OMP Hompe page"
   2.292 +@misc{OMPHome,
   2.293 +  Note =         {http://www.openmediaplatform.eu/},
   2.294 +  Title =        {{Open Media Platform} homepage},
   2.295 +}
   2.296 +
   2.297 +"The OMP infrastructure site"
   2.298 +@misc{Halle2008,
   2.299 +  Author =       {Sean Halle and Albert Cohen},
   2.300 +  Note =         {http://omp.musictwodotoh.com},
   2.301 +  Title =        {{DKU} infrastructure server}
   2.302 +}
   2.303 +
   2.304 +
   2.305 +
   2.306 +"The DKU sourceforge site"
   2.307 +@misc{DKUSourceForge,
   2.308 +  Author =       {Sean Halle and Albert Cohen},
   2.309 +  Month =        {November},
   2.310 +  Note =         {http://dku.sourceforge.net},
   2.311 +  Title =        {{DKU} website},
   2.312 +  Year =         {2008}
   2.313 +}
   2.314 +
   2.315 +
   2.316 +"The BLIS sourceforge site"
   2.317 +@misc{BLISHome,
   2.318 +  Author =       {Sean Halle and Albert Cohen},
   2.319 +  Month =        {November},
   2.320 +  Note =         {http://blisplatform.sourceforge.net},
   2.321 +  Title =        {{BLIS} website},
   2.322 +  Year =         {2008}
   2.323 +}
   2.324 +
   2.325 +
   2.326 +"The VMS Home page"
   2.327 +@misc{VMSHome,
   2.328 +  Author =       {Sean Halle and Merten Sach and Ben Juurlink and Albert Cohen},
   2.329 +  Note =         {http://virtualizedmasterslave.org},
   2.330 +  Title =        {{VMS} Home Page},
   2.331 +  Year =         {2010}
   2.332 +}
   2.333 +
   2.334 +
   2.335 +"The PStack Home page"
   2.336 +@misc{PStackHome,
   2.337 +  Author =       {Sean Halle},
   2.338 +  Note =         {http://pstack.sourceforge.net},
   2.339 +  Title =        {{PStack} Home Page},
   2.340 +  Year =         {2012}
   2.341 +}
   2.342 +
   2.343 +
   2.344 +"Deblocking code in SVN"
   2.345 +@misc{DeblockingCode,
   2.346 +  Note = {http://dku.svn.sourceforge.net/viewvc/dku/branches/DKU\_C\_\_Deblocking\_\_orig/},
   2.347 +  Title ={{DKU-ized Deblocking Filter} code}
   2.348 +}
   2.349 +
   2.350 +
   2.351 +
   2.352 +"Sample code on BLIS site"
   2.353 +@misc{SampleBLISCode,
   2.354 +  Note = {http://dku.sourceforge.net/SampleCode.htm},
   2.355 +  Title ={{Sample BLIS Code}}
   2.356 +}
   2.357 +
   2.358 +"Framework Technical Report"
   2.359 +@misc{FrameworkTechRep,
   2.360 +  Author =       {Halle, Sean and Nadezhkin, Dmitry and Cohen, Albert},
   2.361 +  Note =         {http://www.soe.ucsc.edu/share/technical-reports/2010/ucsc-soe-10-02.pdf},
   2.362 +  Title =        {A Framework to Support Research on Portable High Performance Parallelism}
   2.363 +}
   2.364 +
   2.365 +"Map reduce"
   2.366 +@misc{MapReduceHome,
   2.367 +  Author =       {Google Corp.},
   2.368 +  Note =         {http://labs.google.com/papers/mapreduce.html},
   2.369 +  Title =        {{MapReduce} Home page},
   2.370 +}
   2.371 +
   2.372 +
   2.373 +"TBB  Thread Building Blocks"
   2.374 +@misc{TBBHome,
   2.375 +  Author =       {Intel Corp.},
   2.376 +  Note =         {http://www.threadingbuildingblocks.org},
   2.377 +  Title =        {{TBB} Home page},
   2.378 +}
   2.379 +
   2.380 +
   2.381 +"HPF Wikipedia entry"
   2.382 +@misc{HPFWikipedia,
   2.383 +  Author =       {Wikipedia},
   2.384 +  Note =         {http://en.wikipedia.org/wiki/High_Performance_Fortran},
   2.385 +  Title =        {{HPF} wikipedia page},
   2.386 +}
   2.387 +
   2.388 +
   2.389 +"OpenMP Home page"
   2.390 +@misc{OpenMPHome,
   2.391 +  Author =       {{OpenMP} organization},
   2.392 +  Note =         {http://www.openmp.org},
   2.393 +  Title =        {{OpenMP} Home page}
   2.394 +}
   2.395 +
   2.396 +
   2.397 +
   2.398 +"Open MPI Home page"
   2.399 +@misc{MPIHome,
   2.400 +  Author =       {open-mpi organization},
   2.401 +  Note =         {http://www.open-mpi.org},
   2.402 +  Title =        {{Open MPI} Home page}
   2.403 +}
   2.404 +
   2.405 +"OpenCL Home page"
   2.406 +@misc{OpenCLHome,
   2.407 +  Author =       {Kronos Group},
   2.408 +  Note =         {http://www.khronos.org/opencl},
   2.409 +  Title =        {{OpenCL} Home page}
   2.410 +}
   2.411 +
   2.412 +
   2.413 +"CILK Hompe page"
   2.414 +@misc{CILKHome,
   2.415 +  Author =       {Cilk group at MIT},
   2.416 +  Note =         {http://supertech.csail.mit.edu/cilk/},
   2.417 +  Title =        {{CILK} homepage},
   2.418 +}
   2.419 +
   2.420 +@InProceedings{Fri98,
   2.421 +  author = 	 {M. Frigo and C. E. Leiserson and K. H. Randall},
   2.422 +  title = 	 {The Implementation of the Cilk-5 Multithreaded Language},
   2.423 +  booktitle = 	 {PLDI '98: Proceedings of the 1998 ACM SIGPLAN conference on Programming language design and implementation},
   2.424 +  pages =	 {212--223},
   2.425 +  year =	 1998,
   2.426 +  address =	 {Montreal, Quebec},
   2.427 +  month =	 jun
   2.428 +}
   2.429 +
   2.430 +
   2.431 +"Titanium Hompe page"
   2.432 +@misc{TitaniumHome,
   2.433 +  Note =         {http://titanium.cs.berkeley.edu},
   2.434 +  Title =        {{Titanium} homepage}
   2.435 +}
   2.436 +
   2.437 +
   2.438 +"CnC in HotPar"
   2.439 +@inproceedings{CnCInHotPar,
   2.440 +    author = {Knobe, Kathleen},
   2.441 +    booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism},
   2.442 +    month = {March},
   2.443 +    title = {Ease of Use with Concurrent Collections {(CnC)}},
   2.444 +    year = {2009}
   2.445 +}
   2.446 +
   2.447 +
   2.448 +"CnC Hompe page"
   2.449 +@misc{CnCHome,
   2.450 +  Author =       {Intel Corp.},
   2.451 +  Note =         {http://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/},
   2.452 +  Title =        {{CnC} homepage},
   2.453 +}
   2.454 +
   2.455 +"Spiral Home page"
   2.456 +@misc{SpiralHome,
   2.457 +  Author =       {Spiral Group at CMU},
   2.458 +  Note =         {http://www.spiral.net},
   2.459 +  Title =        {{Spiral} homepage},
   2.460 +}
   2.461 +
   2.462 +
   2.463 +"Scala Hompe page"
   2.464 +@misc{ScalaHome,
   2.465 +  Author =       {Scala organization},
   2.466 +  Note =         {http://www.scala-lang.org/},
   2.467 +  Title =        {{Scala} homepage},
   2.468 +}
   2.469 +
   2.470 +
   2.471 +
   2.472 +
   2.473 +"UPC Hompe page"
   2.474 +@misc{UPCHome,
   2.475 +  Author =       {UPC group at UC Berkeley},
   2.476 +  Note =         {http://upc.lbl.gov/},
   2.477 +  Title =        {{Unified Parallel C} homepage},
   2.478 +}
   2.479 +
   2.480 +
   2.481 +"Suif Hompe page"
   2.482 +@misc{SuifHome,
   2.483 +  Note =         {http://suif.stanford.edu},
   2.484 +  Title =        {{Suif} Parallelizing compiler homepage},
   2.485 +}
   2.486 +
   2.487 +
   2.488 +
   2.489 +"SEJITS"
   2.490 +@article{SEJITS,
   2.491 +  author = {B. Catanzaro and S. Kamil and Y. Lee and K. Asanovic and J. Demmel and K. Keutzer and J. Shalf and K. Yelick and A. Fox},
   2.492 +  title = {SEJITS: Getting Productivity AND Performance With Selective Embedded JIT Specialization},
   2.493 +  journal = {First Workshop on Programmable Models for Emerging Architecture at the 18th International Conference on Parallel Architectures and Compilation Techniques },
   2.494 +  year = {2009} 
   2.495 +}
   2.496 +
   2.497 +
   2.498 +"Arnaldo 3D parallel on NXP chip"
   2.499 +@inproceedings{Arnaldo3D,
   2.500 +  author = {Azevedo, Arnaldo and Meenderinck, Cor and Juurlink, Ben and Terechko, Andrei and Hoogerbrugge, Jan and Alvarez, Mauricio and Ramirez, Alex},
   2.501 +  title = {Parallel H.264 Decoding on an Embedded Multicore Processor},
   2.502 +  booktitle = {HiPEAC '09: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers},
   2.503 +  year = {2009},
   2.504 + pages = {404--418}
   2.505 + }
   2.506 +
   2.507 +
   2.508 +"Narayanan's GPU scheduling tool"
   2.509 +@article{NarayananGPUSched,
   2.510 +  author = {Narayanan Sundaram and Anand Raghunathan and Srimat T. Chakradhar},
   2.511 +  title = {A framework for efficient and scalable execution of domain-specific templates on GPUs},
   2.512 +  journal ={International Parallel and Distributed Processing Symposium {(IPDPS)}},
   2.513 +  year = {2009},
   2.514 +  pages = {1-12},
   2.515 +}
   2.516 +
   2.517 +"Polyhedral for GPU from Ohio State"
   2.518 +@inproceedings{PolyForGPU,
   2.519 +   author = {Baskaran, Muthu Manikandan and Bondhugula, Uday and Krishnamoorthy, Sriram and Ramanujam, J. and Rountev, Atanas and Sadayappan, P.},
   2.520 +   title = {A compiler framework for optimization of affine loop nests for gpgpus},
   2.521 +   booktitle = {ICS '08: Proceedings of the 22nd annual international conference on Supercomputing},
   2.522 +   year = {2008},
   2.523 +   pages = {225--234},
   2.524 + }
   2.525 +
   2.526 +"Loulou's Polyhedral loop-nest optimization paper in PLDI 08"
   2.527 +@inproceedings{Loulou08,
   2.528 +   author = {Pouchet, Louis-No\"{e}l and Bastoul, C\'{e}dric and Cohen, Albert and Cavazos, John},
   2.529 +   title = {Iterative optimization in the polyhedral model: part ii, multidimensional time},
   2.530 +   booktitle = {ACM SIGPLAN conference on Programming language design and implementation {(PLDI)} },
   2.531 +   year = {2008},
   2.532 +   pages = {90--100},
   2.533 + }
   2.534 + 
   2.535 +
   2.536 +"Merge in HotPar"
   2.537 +@inproceedings{MergeInHotPar,
   2.538 +    author = {Michael D. Linderman and James Balfour and Teresa H. Meng and William J. Dally},
   2.539 +    booktitle = {HOTPAR '09: USENIX Workshop on Hot Topics in Parallelism},
   2.540 +    month = {March},
   2.541 +    title = {Embracing Heterogeneity \- Parallel Programming for Changing Hardware},
   2.542 +    year = {2009}
   2.543 +}
   2.544 +
   2.545 +
   2.546 +"Galois system for irregular problems"
   2.547 +@inproceedings{GaloisRef,
   2.548 +  author = {Kulkarni, Milind and Pingali, Keshav and Walter, Bruce and Ramanarayanan, Ganesh and Bala, Kavita and Chew, L. Paul},
   2.549 +  title = {Optimistic parallelism requires abstractions},
   2.550 +  booktitle = {PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation},
   2.551 +  year = {2007},
   2.552 +  pages = {211--222}
   2.553 +}
   2.554 +
   2.555 +"Cool compiler book that talks about balancing task size with machine characteristics..  the one Amit had"
   2.556 +@book{Allen2002,
   2.557 +  author = {Kennedy, Ken and Allen, John R.},
   2.558 +  title = {Optimizing compilers for modern architectures: a dependence-based approach},
   2.559 +  year = {2002},
   2.560 +  publisher = {Morgan Kaufmann Publishers Inc.}
   2.561 + }
   2.562 +
   2.563 +
   2.564 +"Streaming languages and tools survery paper"
   2.565 +@MISC{Stephens95,
   2.566 +    author = {R. Stephens},
   2.567 +    title = {A Survey Of Stream Processing},
   2.568 +    year = {1995}
   2.569 +}
   2.570 +
   2.571 +
   2.572 +"Capsule"
   2.573 +@INPROCEEDINGS{Palatin06,
   2.574 +    author = {P Palatin and Y Lhuillier and O Temam},
   2.575 +    title = {CAPSULE: Hardware-assisted parallel execution of componentbased programs},
   2.576 +    booktitle = {In Proceedings of the 39th Annual International Symposium on Microarchitecture},
   2.577 +    year = {2006},
   2.578 +    pages = {247--258}
   2.579 +}
   2.580 +
   2.581 +"Sequioa"
   2.582 +@inproceedings{Sequioa06,
   2.583 + author = {Fatahalian,, Kayvon and Horn,, Daniel Reiter and Knight,, Timothy J. and Leem,, Larkhoon and Houston,, Mike and Park,, Ji Young and Erez,, Mattan and Ren,, Manman and Aiken,, Alex and Dally,, William J. and Hanrahan,, Pat},
   2.584 + title = {Sequoia: programming the memory hierarchy},
   2.585 + booktitle = {SC '06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing},
   2.586 + year = {2006},
   2.587 + pages = {83}
   2.588 + }
   2.589 +
   2.590 + 
   2.591 + 
   2.592 + 
   2.593 +"Cole meta skeletons book"
   2.594 +@Book{Cole89,
   2.595 +  author = 	     {M Cole},
   2.596 +  title = 	     {Algorithmic skeletons: Structured management of parallel computation},
   2.597 +  publisher =    {Pitman},
   2.598 +  year =         {1989}
   2.599 +}
   2.600 +
   2.601 +
   2.602 +"Meta programming skeletons example"
   2.603 +@INPROCEEDINGS{Ginhac98,
   2.604 +    author = {Dominique Ginhac and Jocelyn Serot and Jean Pierre Derutin},
   2.605 +    title = {Fast prototyping of image processing applications using functional skeletons on a MIMD-DM architecture},
   2.606 +    booktitle = {In IAPR Workshop on Machine Vision and Applications},
   2.607 +    year = {1998},
   2.608 +    pages = {468--471}
   2.609 +}
   2.610 +
   2.611 +
   2.612 +"Parallel Skeletons meta programming"
   2.613 +@inproceedings{Serot08MetaParallel,
   2.614 + author = {Serot, Jocelyn and Falcou, Joel},
   2.615 + title = {Functional Meta-programming for Parallel Skeletons},
   2.616 + booktitle = {ICCS '08: Proceedings of the 8th international conference on Computational Science, Part I},
   2.617 + year = {2008},
   2.618 + pages = {154--163}
   2.619 + }
   2.620 + 
   2.621 + 
   2.622 +"Random skeletons for parallel programming article with lots of citations"
   2.623 +@INPROCEEDINGS{Darlington93,
   2.624 +    author = {J. Darlington and A. J. Field and P. G. Harrison and P. H. J. Kelly and D. W. N. Sharp and Q. Wu},
   2.625 +    title = {Parallel programming using skeleton functions},
   2.626 +    booktitle = {},
   2.627 +    year = {1993},
   2.628 +    pages = {146--160},
   2.629 +    publisher = {Springer-Verlag}
   2.630 +}
   2.631 +
   2.632 +
   2.633 +"View from Berkeley paper"
   2.634 +@article{Asanovic06BerkeleyView,
   2.635 +  title={{The landscape of parallel computing research: A view from berkeley}},
   2.636 +  author={Asanovic, K. and Bodik, R. and Catanzaro, B.C. and Gebis, J.J. and Husbands, P. and Keutzer, K. and Patterson, D.A. and Plishker, W.L. and Shalf, J. and Williams, S.W. and others},
   2.637 +  journal={Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2006-183, December},
   2.638 +  volume={18},
   2.639 +  number={2006-183},
   2.640 +  pages={19},
   2.641 +  year={2006},
   2.642 +}
   2.643 +
   2.644 +
   2.645 +
   2.646 +
   2.647 +"Berkeley Pattern Language"
   2.648 +@misc{BerkeleyPattLang,
   2.649 +  Note =         {http://parlab.eecs.berkeley.edu/wiki/patterns},
   2.650 +  Title =        {{Berkeley Pattern Language}}
   2.651 +}
   2.652 +
   2.653 +
   2.654 +"Keutzer reccomended Parallel Prog Patterns book"
   2.655 +@book{Mattson04Patterns,
   2.656 +  title={{Patterns for parallel programming}},
   2.657 +  author={Mattson, T. and Sanders, B. and Massingill, B.},
   2.658 +  year={2004},
   2.659 +  publisher={Addison-Wesley Professional}
   2.660 +}
   2.661 +
   2.662 +
   2.663 +"Skillicorn  Parallel Languages Survery book"
   2.664 +@article{Skillicorn98,
   2.665 +  title={{Models and languages for parallel computation}},
   2.666 +  author={Skillicorn, D.B. and Talia, D.},
   2.667 +  journal={ACM Computing Surveys (CSUR)},
   2.668 +  volume={30},
   2.669 +  number={2},
   2.670 +  pages={123--169},
   2.671 +  year={1998}
   2.672 +}
   2.673 +
   2.674 +
   2.675 +
   2.676 +"NESL language"
   2.677 +@conference{Blelloch93NESL,
   2.678 +  title={{Implementation of a portable nested data-parallel language}},
   2.679 +  author={Blelloch, G.E. and Hardwick, J.C. and Chatterjee, S. and Sipelstein, J. and Zagha, M.},
   2.680 +  booktitle={Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming},
   2.681 +  pages={102--111},
   2.682 +  year={1993},
   2.683 +  organization={ACM New York, NY, USA}
   2.684 +}
   2.685 +
   2.686 +
   2.687 +"Sisal"
   2.688 +@article{McgrawSisal,
   2.689 +  title={{SISAL: Streams and iteration in a single assignment language: Reference manual version 1.2}},
   2.690 +  author={McGraw, J. and Skedzielewski, SK and Allan, SJ and Oldehoeft, RR and Glauert, J. and Kirkham, C. and Noyce, B. and Thomas, R.},
   2.691 +  journal={Manual M-146, Rev},
   2.692 +  volume={1}
   2.693 +}
   2.694 +
   2.695 +
   2.696 +"Linda"
   2.697 +@article{Gelernter85Linda,
   2.698 +  title={{Generative communication in Linda}},
   2.699 +  author={Gelernter, D.},
   2.700 +  journal={ACM Transactions on Programming Languages and Systems (TOPLAS)},
   2.701 +  volume={7},
   2.702 +  number={1},
   2.703 +  pages={80--112},
   2.704 +  year={1985}
   2.705 +}
   2.706 +
   2.707 +
   2.708 +"ZPL"
   2.709 +@article{Lin94ZPL,
   2.710 +  title={{ZPL: An array sublanguage}},
   2.711 +  author={Lin, C. and Snyder, L.},
   2.712 +  journal={Lecture Notes in Computer Science},
   2.713 +  volume={768},
   2.714 +  pages={96--114},
   2.715 +  year={1994}
   2.716 +}
   2.717 +
   2.718 +
   2.719 +
   2.720 +
   2.721 +// Visual programming
   2.722 +@article
   2.723 + { baecker97,
   2.724 +   author = 	{Ron Baecker and Chris DiGiano and Aaron Marcus},
   2.725 +   title = 		{Software visualization for debugging},
   2.726 +   journal = 	{Communications of the ACM},
   2.727 +   volume = 	{40},
   2.728 +   number = 	{4},
   2.729 +   year = 		{1997}, 
   2.730 +   issn = 		{0001-0782},
   2.731 +   pages = 		{44--54},
   2.732 +   publisher = 	{ACM Press}
   2.733 + }
   2.734 +
   2.735 +
   2.736 +// Visual programming
   2.737 +@article
   2.738 + { ball96,
   2.739 +   author =	{T. A. Ball and S. G. Eick},
   2.740 +   title =	{Software Visualization in the Large},
   2.741 +   journal ={IEEE Computer},
   2.742 +   volume =	{29},
   2.743 +   number =	{4},
   2.744 +   year =	{1996},
   2.745 +   month =	{apr},
   2.746 +   pages =	{33--43}
   2.747 + }
   2.748 +
   2.749 +
   2.750 +// Milner references this, Chemical Abstract Machine
   2.751 +@book
   2.752 + {berry89,
   2.753 +  title={{The chemical abstract machine}},
   2.754 +  author={Berry, G. and Boudol, G.},
   2.755 +  year={1989},
   2.756 +  publisher={ACM Press}
   2.757 +}
   2.758 +
   2.759 +
   2.760 +// Cilk reference
   2.761 +@article
   2.762 + {blumofe95,
   2.763 + author = {Robert D. Blumofe and Christopher F. Joerg and Bradley C. Kuszmaul and Charles E. Leiserson and Keith H. Randall and Yuli Zhou},
   2.764 + title = {Cilk: an efficient multithreaded runtime system},
   2.765 + journal = {SIGPLAN Not.},
   2.766 + volume = {30},
   2.767 + number = {8},
   2.768 + year = {1995},
   2.769 + pages = {207--216}
   2.770 + }
   2.771 +
   2.772 +
   2.773 +// this has 1440 citations, so throwing it in..
   2.774 +// The complexity of symbolic checking of program correctness
   2.775 +@article
   2.776 + {burch90,
   2.777 +  title={{Symbolic model checking: 10^{20} states and beyond}},
   2.778 +  author={Burch, JR and Clarke, EM and McMillan, KL and Dill, DL and Hwang, LJ},
   2.779 +  journal={Logic in Computer Science, 1990. LICS'90, Proceedings},
   2.780 +  pages={428--439},
   2.781 +  year={1990}
   2.782 +}
   2.783 +
   2.784 +@article
   2.785 + {chamberlain98,
   2.786 +author = {B. Chamberlain and S. Choi and E. Lewis and C. Lin and L. Snyder and W. Weathersby},
   2.787 +title = {ZPL's WYSIWYG Performance Model},
   2.788 +journal = {hips},
   2.789 +volume = {00},
   2.790 +year = {1998},
   2.791 +isbn = {0-8186-8412-7},
   2.792 +pages = {50}
   2.793 +}
   2.794 +
   2.795 +
   2.796 +
   2.797 +// from http://libweb.princeton.edu/libraries/firestone/rbsc/aids/church/church1.html#1
   2.798 +@article{church41,
   2.799 +   author={A. Church},
   2.800 +   title={The Calculi of Lambda-Conversion},
   2.801 +   journal={Annals of Mathematics Studies},
   2.802 +   number={6},
   2.803 +   year={1941},
   2.804 +   publisher={Princeton University}
   2.805 +}
   2.806 +
   2.807 +
   2.808 +@misc
   2.809 + { CodeTimeSite,
   2.810 +   author =	{Sean Halle},
   2.811 +   key =	{CodeTime},
   2.812 +   title = 	{Homepage for The CodeTime Parallel Software Platform},
   2.813 +   note = 	{{\ttfamily http://codetime.sourceforge.net}}
   2.814 + }
   2.815 +
   2.816 +
   2.817 +
   2.818 +@misc
   2.819 + { CodeTimePlatform,
   2.820 +   author =	{Sean Halle},
   2.821 +   key =	{CodeTime},
   2.822 +   title = 	{The CodeTime Parallel Software Platform},
   2.823 +   note = 	{{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Platform.pdf}}
   2.824 + }
   2.825 +
   2.826 +
   2.827 +@misc
   2.828 + { CodeTimeVS,
   2.829 +   author =	{Sean Halle},
   2.830 +   key =	{CodeTime},
   2.831 +   title = 	{The Specification of the CodeTime Platform's Virtual Server},
   2.832 +   note = 	{{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Virtual\_Server.pdf}}
   2.833 + }
   2.834 +
   2.835 +
   2.836 +@misc
   2.837 + { CodeTimeOS,
   2.838 +   author =	{Sean Halle},
   2.839 +   key =	{CodeTime},
   2.840 +   title = 	{A Hardware Independent OS},
   2.841 +   note = 	{{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_OS.pdf}}
   2.842 + }
   2.843 +
   2.844 +
   2.845 +@misc
   2.846 + { CodeTimeSem,
   2.847 +   author =	{Sean Halle},
   2.848 +   key =	{CodeTime},
   2.849 +   title = 	{The Big-Step Operational Semantics of the CodeTime Computational Model},
   2.850 +   note = 	{{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Semantics.pdf}}
   2.851 + }
   2.852 +
   2.853 +
   2.854 +@misc
   2.855 + { CodeTimeTh,
   2.856 +   author =	{Sean Halle},
   2.857 +   key =	{CodeTime},
   2.858 +   title = 	{A Mental Framework for Use in Creating Hardware-Independent Parallel Languages},
   2.859 +   note = 	{{\ttfamily http://codetime.sourceforge.net/content/CodeTiime\_Theoretical\_Framework.pdf}}
   2.860 + }
   2.861 +
   2.862 +
   2.863 +@misc
   2.864 + { CodeTimeTh1,
   2.865 +   author =	{Sean Halle},
   2.866 +   key =	{CodeTime},
   2.867 +   title = 	{The CodeTime Parallel Software Platform},
   2.868 +   note = 	{{\ttfamily http://codetime.sourceforge.net}}
   2.869 + }
   2.870 +
   2.871 +
   2.872 +@misc
   2.873 + { CodeTimeTh2,
   2.874 +   author =	{Sean Halle},
   2.875 +   key =	{CodeTime},
   2.876 +   title = 	{The CodeTime Parallel Software Platform},
   2.877 +   note = 	{{\ttfamily http://codetime.sourceforge.net}}
   2.878 + }
   2.879 +
   2.880 +
   2.881 +@misc
   2.882 + { CodeTimeRT,
   2.883 +   author =	{Sean Halle},
   2.884 +   key =	{CodeTime},
   2.885 +   title = 	{The CodeTime Parallel Software Platform},
   2.886 +   note = 	{{\ttfamily http://codetime.sourceforge.net}}
   2.887 + }
   2.888 +
   2.889 +
   2.890 +@misc
   2.891 + { CodeTimeWebSite
   2.892 +   author =	{Sean Halle},
   2.893 +   key =	{CodeTime},
   2.894 +   title = 	{The CodeTime Parallel Software Platform},
   2.895 +   note = 	{{\ttfamily http://codetime.sourceforge.net}}
   2.896 + }
   2.897 +
   2.898 +
   2.899 +@misc
   2.900 + { CodeTimeBaCTiL,
   2.901 +   author =	{Sean Halle},
   2.902 +   key =	{CodeTime},
   2.903 +   title = 	{The Base CodeTime Language},
   2.904 +   note = 	{{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_BaCTiL.pdf}}
   2.905 + }
   2.906 +
   2.907 +@misc
   2.908 + { CodeTimeCert,
   2.909 +   author =	{Sean Halle},
   2.910 +   key =	{CodeTime},
   2.911 +   title = 	{The CodeTime Certification Strategy},
   2.912 +   note = 	{{\ttfamily http://codetime.sourceforge.net/content/CodeTime\_Certification.pdf}}
   2.913 + }
   2.914 +
   2.915 +
   2.916 +// Multiple inheritance: explains issues well and references LOOPS and CLOS
   2.917 +@inproceedings{ducournau94,
   2.918 +  author = {R. Ducournau and M. Habib and M. Huchard and M. L. Mugnier},
   2.919 +  title = {Proposal for a monotonic multiple inheritance linearization},
   2.920 +  booktitle = {OOPSLA '94: Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications},
   2.921 +  year = {1994},
   2.922 +  pages = {164--175},
   2.923 +  publisher = {ACM Press}
   2.924 +}
   2.925 +
   2.926 +
   2.927 +// 252 Citations, shows equivalence of mu-calculus and (nondeterministic) tree automata,
   2.928 +// so cited as foundation a lot
   2.929 +@article{emerson91,
   2.930 +  title={{Tree automata, mu-calculus and determinacy}},
   2.931 +  author={Emerson, EA and Jutla, CS},
   2.932 +  journal={Proceedings of the 32nd Symposium on Foundations of Computer Science},
   2.933 +  pages={368--377},
   2.934 +  year={1991}
   2.935 +}
   2.936 +
   2.937 +
   2.938 +// Introducs PRAM model, at same time, in same conference as 
   2.939 +@article{fortune78,
   2.940 +  title={{Parallelism in random access machines}},
   2.941 +  author={Fortune, S. and Wyllie, J.},
   2.942 +  journal={STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing},
   2.943 +  pages={114--118},
   2.944 +  year={1978},
   2.945 +  publisher={ACM Press New York, NY, USA}
   2.946 +}
   2.947 +
   2.948 +
   2.949 +
   2.950 +// Smalltalk reference
   2.951 +@book{goldberg83,
   2.952 +  title={{Smalltalk-80: the language and its implementation}},
   2.953 +  author={Goldberg, A. and Robson, D.},
   2.954 +  year={1983},
   2.955 +  publisher={Addison-Wesley}
   2.956 +}
   2.957 +
   2.958 +
   2.959 +// also introduces PRAM model, apparently independently
   2.960 +@inproceedings{goldschlager78,
   2.961 + author = {Leslie M. Goldschlager},
   2.962 + title = {A unified approach to models of synchronous parallel machines},
   2.963 + booktitle = {STOC '78: Proceedings of the tenth annual ACM symposium on Theory of computing},
   2.964 + year = {1978},
   2.965 + pages = {89--94},
   2.966 + location = {San Diego, California, United States},
   2.967 + doi = {http://doi.acm.org/10.1145/800133.804336},
   2.968 + publisher = {ACM Press},
   2.969 +}
   2.970 +
   2.971 +
   2.972 +// Java spec
   2.973 +@book
   2.974 + { gosling96,
   2.975 +   author = 	{J. Gosling and B. Joy and G. Steele and G. Bracha},
   2.976 +   title = 		{The Java Language Specification},
   2.977 +   publisher = 	{Addison-Wesley},
   2.978 +   year = 	{1996}
   2.979 + }
   2.980 +
   2.981 +
   2.982 +//  Survey of prototyping parallel apps
   2.983 +@article{hasselbring00,
   2.984 + author = {Wilhelm Hasselbring},
   2.985 + title = {Programming languages and systems for prototyping concurrent applications},
   2.986 + journal = {ACM Comput. Surv.},
   2.987 + volume = {32},
   2.988 + number = {1},
   2.989 + year = {2000},
   2.990 + issn = {0360-0300},
   2.991 + pages = {43--79},
   2.992 + doi = {http://doi.acm.org/10.1145/349194.349199},
   2.993 + publisher = {ACM Press},
   2.994 + address = {New York, NY, USA},
   2.995 + }
   2.996 +
   2.997 +
   2.998 +// Original CSP paper
   2.999 +@article{hoare78,
  2.1000 +   author={C. A. R. Hoare},
  2.1001 +   title={Communicating Sequential Processes},
  2.1002 +   journal={Communications of the ACM},
  2.1003 +   year={1978},
  2.1004 +   volume={21},
  2.1005 +   number={8},
  2.1006 +   pages={666-677}
  2.1007 +}
  2.1008 +
  2.1009 +
  2.1010 +// 8 citations.. probably from self..  want a paper that ties areas together..  
  2.1011 +// This paper does a beautiful job..
  2.1012 +@article{huth,
  2.1013 +  title={{A Unifying Framework for Model Checking Labeled Kripke Structures, Modal Transition Systems, and Interval Transition Systems}},
  2.1014 +  author={Huth, M.},
  2.1015 +  journal={Proceedings of the 19th International Conference on the Foundations of Software Technology \& Theoretical Computer Science, Lecture Notes in Computer Science},
  2.1016 +  pages={369--380},
  2.1017 +  publisher={Springer-Verlag}
  2.1018 +}
  2.1019 +
  2.1020 +
  2.1021 +//  Dataflow advances survey, includes large grain dataflow
  2.1022 +@article
  2.1023 + { johnston04,
  2.1024 +   author = 	{Wesley M. Johnston and J. R. Paul Hanna and Richard J. Millar},
  2.1025 +   title = 		{Advances in dataflow programming languages},
  2.1026 +   journal = 	{ACM Comput. Surv.},
  2.1027 +   volume = 	{36},
  2.1028 +   number = 	{1},
  2.1029 +   year = 		{2004},
  2.1030 +   issn = 		{0360-0300},
  2.1031 +   pages = 		{1--34},
  2.1032 +   doi = 		{http://doi.acm.org/10.1145/1013208.1013209},
  2.1033 +   publisher = 	{ACM Press},
  2.1034 +   address = 	{New York, NY, USA}
  2.1035 + }
  2.1036 +
  2.1037 +
  2.1038 +@book
  2.1039 + { koelbel93,
  2.1040 +   author =	{C. H. Koelbel and D. Loveman and R. Schreiber and G. Steele Jr},
  2.1041 +   title = 		{High Performance Fortran Handbook},
  2.1042 +   year = 	{1993},
  2.1043 +   publisher =	{MIT Press}
  2.1044 + }
  2.1045 +
  2.1046 +
  2.1047 +// mu calculus paper with 430 citations
  2.1048 +@article{kozen83,
  2.1049 +  title={{Results on the Propositional mu-Calculus}},
  2.1050 +  author={Kozen, D.},
  2.1051 +  journal={TCS},
  2.1052 +  volume={27},
  2.1053 +  pages={333--354},
  2.1054 +  year={1983}
  2.1055 +}
  2.1056 +
  2.1057 +
  2.1058 +// original kripke structure paper
  2.1059 +@article{kripke63,
  2.1060 +  title={{Semantical analysis of modal logic}},
  2.1061 +  author={Kripke, S.},
  2.1062 +  journal={Zeitschrift fur Mathematische Logik und Grundlagen der Mathematik},
  2.1063 +  volume={9},
  2.1064 +  pages={67--96},
  2.1065 +  year={1963}
  2.1066 +}
  2.1067 +
  2.1068 +
  2.1069 +@book
  2.1070 + { mcGraw85,
  2.1071 +   author = 	{J McGraw and S. Skedzielewski and S. Allan and R Odefoeft},
  2.1072 +   title = 		{SISAL: Streams and Iteration in a Single-Assignment Language: Reference Manual Version 1.2},
  2.1073 +   note = 	{Manual M-146 Rev. 1},
  2.1074 +   publisher = 	{Lawrence Livermore National Laboratory},
  2.1075 +   year = 	{1985}
  2.1076 + }
  2.1077 +
  2.1078 +
  2.1079 +// Milner's own citation to development of CCS
  2.1080 +@book{milner80,
  2.1081 +  title={{A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science}},
  2.1082 +  author={Milner, R.},
  2.1083 +  year={1980},
  2.1084 +  publisher={Springer-Verlag}
  2.1085 +}
  2.1086 +
  2.1087 +
  2.1088 +// Milner's own pi-calculus reference
  2.1089 +@article{milner92,
  2.1090 +  title={{A calculus of mobile processes, parts I and II}},
  2.1091 +  author={Milner, R. and Parrow, J. and Walker, D.},
  2.1092 +  journal={Information and Computation},
  2.1093 +  volume={100},
  2.1094 +  number={1},
  2.1095 +  pages={1--40 and 41--77},
  2.1096 +  year={1992},
  2.1097 +  publisher={Academic Press}
  2.1098 +}
  2.1099 +
  2.1100 +
  2.1101 +// more recent Pi calculus reference
  2.1102 +@book
  2.1103 + { milner99,
  2.1104 +   author = 	{Robin Milner},
  2.1105 +   title = 		{Communicating and Mobile Systems: The pi-Calculus},
  2.1106 +   publisher = 	{Cambridge University Press},
  2.1107 +   year = 	{1999}
  2.1108 + }
  2.1109 +
  2.1110 +
  2.1111 +// MPI reference
  2.1112 +@book
  2.1113 + { MPIForum94,
  2.1114 +   author = 	{M. P. I. Forum},
  2.1115 +   title = 		{MPI: A Message-Passing Interface Standard},
  2.1116 +   year = 	{1994}
  2.1117 + }
  2.1118 +
  2.1119 +
  2.1120 +// Petri nets original citation
  2.1121 +@article{petri62,
  2.1122 +  title={{Fundamentals of a theory of asynchronous information flow}},
  2.1123 +  author={Petri, C.A.},
  2.1124 +  journal={Proc. IFIP Congress},
  2.1125 +  volume={62},
  2.1126 +  pages={386--390},
  2.1127 +  year={1962}
  2.1128 +}
  2.1129 +
  2.1130 +
  2.1131 +// Pierce Type system book
  2.1132 +@book{pierce02,
  2.1133 +   title={Types and Programming Languages},
  2.1134 +   author={Pierce, B. C.},
  2.1135 +   year={2002},
  2.1136 +   publisher={MIT Press}
  2.1137 +}
  2.1138 +
  2.1139 +
  2.1140 +// Survey of Visual programming
  2.1141 +@Article
  2.1142 + { price,
  2.1143 +   author =	{B. A. Price and R. M. Baecker and L. S. Small},
  2.1144 +   title =	{A Principled Taxonomy of Software Visualization},
  2.1145 +   journal ={Journal of Visual Languages and Computing},
  2.1146 +   volume =	{4},
  2.1147 +   number =	{3},
  2.1148 +   pages =	{211--266}
  2.1149 + }
  2.1150 +
  2.1151 +
  2.1152 +
  2.1153 +@misc
  2.1154 + { pythonWebSite,
  2.1155 +   key = 	{Python},
  2.1156 +   title = 		{The Python Software Foundation Mission Statement},
  2.1157 +   note = 	{{\ttfamily http://www.python.org/psf/mission.html}}
  2.1158 + }
  2.1159 +
  2.1160 +
  2.1161 +// Roadmap for Revitalization of High End Computing
  2.1162 +@unpublished
  2.1163 + { reed03,
  2.1164 +   editor = 	{Daniel A. Reed},
  2.1165 +   title = 		{Workshop on The Roadmap for the Revitalization of High-End Computing},
  2.1166 +   day = 	{16--18},
  2.1167 +   month = 	{jun},
  2.1168 +   year = 	{2003},
  2.1169 +   note = 	{Available at {\ttfamily http://www.cra.org/reports/supercomputing.web.pdf}}
  2.1170 + }
  2.1171 +
  2.1172 +
  2.1173 +// Parallel Pascal
  2.1174 +@Article
  2.1175 + { reeves84,
  2.1176 +   author =	{A. P. Reeves},
  2.1177 +   title =		{Parallel Pascal -- An Extended Pascal for Parallel Computers},
  2.1178 +   journal =	{Journal of Parallel and Distributed Computing},
  2.1179 +   volume =	{1},
  2.1180 +   number =	{},
  2.1181 +   year =	{1984},
  2.1182 +   month =	{aug},
  2.1183 +   pages =	{64--80}
  2.1184 + }
  2.1185 +
  2.1186 +
  2.1187 +// Survey of parallel langs and models
  2.1188 +@article{skillicorn98,
  2.1189 + author = {David B. Skillicorn and Domenico Talia},
  2.1190 + title = {Models and languages for parallel computation},
  2.1191 + journal = {ACM Comput. Surv.},
  2.1192 + volume = {30},
  2.1193 + number = {2},
  2.1194 + year = {1998},
  2.1195 + issn = {0360-0300},
  2.1196 + pages = {123--169},
  2.1197 + doi = {http://doi.acm.org/10.1145/280277.280278},
  2.1198 + publisher = {ACM Press},
  2.1199 + address = {New York, NY, USA},
  2.1200 + }
  2.1201 +
  2.1202 +
  2.1203 +// LOOPS ref for multiple inheritance issues
  2.1204 +@article{stefik86,
  2.1205 +  title={Object Oriented Programming: Themes and Variations},
  2.1206 +  author={Stefik, M. and Bobrow, D. G.},
  2.1207 +  journal={The AI Magazine},
  2.1208 +  volume={6},
  2.1209 +  number={4},
  2.1210 +  year={1986}
  2.1211 +}
  2.1212 +
  2.1213 +
  2.1214 +// 240 citations to this book, so seems safe..  covers modal logics which is superset 
  2.1215 +//  of temporal logics
  2.1216 +@book{stirling92,
  2.1217 +  title={{Modal and Temporal Logics}},
  2.1218 +  author={Stirling, C.},
  2.1219 +  year={1992},
  2.1220 +  publisher={University of Edinburgh, Department of Computer Science}
  2.1221 +}
  2.1222 +
  2.1223 +
  2.1224 +//  Titanium website
  2.1225 +@misc
  2.1226 + { TitaniumWebSite,
  2.1227 +   author =	{Paul Hilfinger and et. al.},
  2.1228 +   title = 	{The Titanium Project Home Page},
  2.1229 +   note = 	{{\ttfamily http://www.cs.berkeley.edu/projects/titanium}}
  2.1230 + }
  2.1231 +
  2.1232 +
  2.1233 +// website with scans of original work by Turing
  2.1234 +@misc{turing38,
  2.1235 +   author={A. Turing},
  2.1236 +   note={http://www.turingarchive.org/intro/, and
  2.1237 +http://www.turing.org.uk/sources/biblio4.html, and
  2.1238 +http://web.comlab.ox.ac.uk/oucl/research/areas/ieg/e-library/sources/tp2-ie.pdf},
  2.1239 +   year={1938}
  2.1240 +}
  2.1241 +
  2.1242 +
  2.1243 +// First mention of von Neumann's architecture ideas
  2.1244 +@book{vonNeumann45,
  2.1245 +   title={First Draft of a Report on the EDVAC},
  2.1246 +   author={J. von Neumann},
  2.1247 +   year={1945},
  2.1248 +   publisher={United States Army Ordnance Department}
  2.1249 +}
  2.1250 +
  2.1251 +
  2.1252 +// The 203 Glynn Winskel book for Formal Semantics
  2.1253 +@book{winskel93,
  2.1254 +  title={{The Formal Semantics of Programming Languages}},
  2.1255 +  author={Winskel, G.},
  2.1256 +  year={1993},
  2.1257 +  publisher={MIT Press}
  2.1258 +}
  2.1259 +
  2.1260 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/plain.bst	Thu Feb 02 12:22:53 2012 -0800
     3.3 @@ -0,0 +1,1098 @@
     3.4 +% BibTeX standard bibliography style `plain'
     3.5 +	% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
     3.6 +	% Copyright (C) 1985, all rights reserved.
     3.7 +	% Copying of this file is authorized only if either
     3.8 +	% (1) you make absolutely no changes to your copy, including name, or
     3.9 +	% (2) if you do make changes, you name it something other than
    3.10 +	% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
    3.11 +	% This restriction helps ensure that all standard styles are identical.
    3.12 +	% The file btxbst.doc has the documentation for this style.
    3.13 +
    3.14 +ENTRY
    3.15 +  { address
    3.16 +    author
    3.17 +    booktitle
    3.18 +    chapter
    3.19 +    edition
    3.20 +    editor
    3.21 +    howpublished
    3.22 +    institution
    3.23 +    journal
    3.24 +    key
    3.25 +    month
    3.26 +    note
    3.27 +    number
    3.28 +    organization
    3.29 +    pages
    3.30 +    publisher
    3.31 +    school
    3.32 +    series
    3.33 +    title
    3.34 +    type
    3.35 +    volume
    3.36 +    year
    3.37 +  }
    3.38 +  {}
    3.39 +  { label }
    3.40 +
    3.41 +INTEGERS { output.state before.all mid.sentence after.sentence after.block }
    3.42 +
    3.43 +FUNCTION {init.state.consts}
    3.44 +{ #0 'before.all :=
    3.45 +  #1 'mid.sentence :=
    3.46 +  #2 'after.sentence :=
    3.47 +  #3 'after.block :=
    3.48 +}
    3.49 +
    3.50 +STRINGS { s t }
    3.51 +
    3.52 +FUNCTION {output.nonnull}
    3.53 +{ 's :=
    3.54 +  output.state mid.sentence =
    3.55 +    { ", " * write$ }
    3.56 +    { output.state after.block =
    3.57 +	{ add.period$ write$
    3.58 +	  newline$
    3.59 +	  "\newblock " write$
    3.60 +	}
    3.61 +	{ output.state before.all =
    3.62 +	    'write$
    3.63 +	    { add.period$ " " * write$ }
    3.64 +	  if$
    3.65 +	}
    3.66 +      if$
    3.67 +      mid.sentence 'output.state :=
    3.68 +    }
    3.69 +  if$
    3.70 +  s
    3.71 +}
    3.72 +
    3.73 +FUNCTION {output}
    3.74 +{ duplicate$ empty$
    3.75 +    'pop$
    3.76 +    'output.nonnull
    3.77 +  if$
    3.78 +}
    3.79 +
    3.80 +FUNCTION {output.check}
    3.81 +{ 't :=
    3.82 +  duplicate$ empty$
    3.83 +    { pop$ "empty " t * " in " * cite$ * warning$ }
    3.84 +    'output.nonnull
    3.85 +  if$
    3.86 +}
    3.87 +
    3.88 +FUNCTION {output.bibitem}
    3.89 +{ newline$
    3.90 +  "\bibitem{" write$
    3.91 +  cite$ write$
    3.92 +  "}" write$
    3.93 +  newline$
    3.94 +  ""
    3.95 +  before.all 'output.state :=
    3.96 +}
    3.97 +
    3.98 +FUNCTION {fin.entry}
    3.99 +{ add.period$
   3.100 +  write$
   3.101 +  newline$
   3.102 +}
   3.103 +
   3.104 +FUNCTION {new.block}
   3.105 +{ output.state before.all =
   3.106 +    'skip$
   3.107 +    { after.block 'output.state := }
   3.108 +  if$
   3.109 +}
   3.110 +
   3.111 +FUNCTION {new.sentence}
   3.112 +{ output.state after.block =
   3.113 +    'skip$
   3.114 +    { output.state before.all =
   3.115 +	'skip$
   3.116 +	{ after.sentence 'output.state := }
   3.117 +      if$
   3.118 +    }
   3.119 +  if$
   3.120 +}
   3.121 +
   3.122 +FUNCTION {not}
   3.123 +{   { #0 }
   3.124 +    { #1 }
   3.125 +  if$
   3.126 +}
   3.127 +
   3.128 +FUNCTION {and}
   3.129 +{   'skip$
   3.130 +    { pop$ #0 }
   3.131 +  if$
   3.132 +}
   3.133 +
   3.134 +FUNCTION {or}
   3.135 +{   { pop$ #1 }
   3.136 +    'skip$
   3.137 +  if$
   3.138 +}
   3.139 +
   3.140 +FUNCTION {new.block.checka}
   3.141 +{ empty$
   3.142 +    'skip$
   3.143 +    'new.block
   3.144 +  if$
   3.145 +}
   3.146 +
   3.147 +FUNCTION {new.block.checkb}
   3.148 +{ empty$
   3.149 +  swap$ empty$
   3.150 +  and
   3.151 +    'skip$
   3.152 +    'new.block
   3.153 +  if$
   3.154 +}
   3.155 +
   3.156 +FUNCTION {new.sentence.checka}
   3.157 +{ empty$
   3.158 +    'skip$
   3.159 +    'new.sentence
   3.160 +  if$
   3.161 +}
   3.162 +
   3.163 +FUNCTION {new.sentence.checkb}
   3.164 +{ empty$
   3.165 +  swap$ empty$
   3.166 +  and
   3.167 +    'skip$
   3.168 +    'new.sentence
   3.169 +  if$
   3.170 +}
   3.171 +
   3.172 +FUNCTION {field.or.null}
   3.173 +{ duplicate$ empty$
   3.174 +    { pop$ "" }
   3.175 +    'skip$
   3.176 +  if$
   3.177 +}
   3.178 +
   3.179 +FUNCTION {emphasize}
   3.180 +{ duplicate$ empty$
   3.181 +    { pop$ "" }
   3.182 +    { "{\em " swap$ * "}" * }
   3.183 +  if$
   3.184 +}
   3.185 +
   3.186 +INTEGERS { nameptr namesleft numnames }
   3.187 +
   3.188 +FUNCTION {format.names}
   3.189 +{ 's :=
   3.190 +  #1 'nameptr :=
   3.191 +  s num.names$ 'numnames :=
   3.192 +  numnames 'namesleft :=
   3.193 +    { namesleft #0 > }
   3.194 +    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
   3.195 +      nameptr #1 >
   3.196 +	{ namesleft #1 >
   3.197 +	    { ", " * t * }
   3.198 +	    { numnames #2 >
   3.199 +		{ "," * }
   3.200 +		'skip$
   3.201 +	      if$
   3.202 +	      t "others" =
   3.203 +		{ " et~al." * }
   3.204 +		{ " and " * t * }
   3.205 +	      if$
   3.206 +	    }
   3.207 +	  if$
   3.208 +	}
   3.209 +	't
   3.210 +      if$
   3.211 +      nameptr #1 + 'nameptr :=
   3.212 +      namesleft #1 - 'namesleft :=
   3.213 +    }
   3.214 +  while$
   3.215 +}
   3.216 +
   3.217 +FUNCTION {format.authors}
   3.218 +{ author empty$
   3.219 +    { "" }
   3.220 +    { author format.names }
   3.221 +  if$
   3.222 +}
   3.223 +
   3.224 +FUNCTION {format.editors}
   3.225 +{ editor empty$
   3.226 +    { "" }
   3.227 +    { editor format.names
   3.228 +      editor num.names$ #1 >
   3.229 +	{ ", editors" * }
   3.230 +	{ ", editor" * }
   3.231 +      if$
   3.232 +    }
   3.233 +  if$
   3.234 +}
   3.235 +
   3.236 +FUNCTION {format.title}
   3.237 +{ title empty$
   3.238 +    { "" }
   3.239 +    { title "t" change.case$ }
   3.240 +  if$
   3.241 +}
   3.242 +
   3.243 +FUNCTION {n.dashify}
   3.244 +{ 't :=
   3.245 +  ""
   3.246 +    { t empty$ not }
   3.247 +    { t #1 #1 substring$ "-" =
   3.248 +	{ t #1 #2 substring$ "--" = not
   3.249 +	    { "--" *
   3.250 +	      t #2 global.max$ substring$ 't :=
   3.251 +	    }
   3.252 +	    {   { t #1 #1 substring$ "-" = }
   3.253 +		{ "-" *
   3.254 +		  t #2 global.max$ substring$ 't :=
   3.255 +		}
   3.256 +	      while$
   3.257 +	    }
   3.258 +	  if$
   3.259 +	}
   3.260 +	{ t #1 #1 substring$ *
   3.261 +	  t #2 global.max$ substring$ 't :=
   3.262 +	}
   3.263 +      if$
   3.264 +    }
   3.265 +  while$
   3.266 +}
   3.267 +
   3.268 +FUNCTION {format.date}
   3.269 +{ year empty$
   3.270 +    { month empty$
   3.271 +	{ "" }
   3.272 +	{ "there's a month but no year in " cite$ * warning$
   3.273 +	  month
   3.274 +	}
   3.275 +      if$
   3.276 +    }
   3.277 +    { month empty$
   3.278 +	'year
   3.279 +	{ month " " * year * }
   3.280 +      if$
   3.281 +    }
   3.282 +  if$
   3.283 +}
   3.284 +
   3.285 +FUNCTION {format.btitle}
   3.286 +{ title emphasize
   3.287 +}
   3.288 +
   3.289 +FUNCTION {tie.or.space.connect}
   3.290 +{ duplicate$ text.length$ #3 <
   3.291 +    { "~" }
   3.292 +    { " " }
   3.293 +  if$
   3.294 +  swap$ * *
   3.295 +}
   3.296 +
   3.297 +FUNCTION {either.or.check}
   3.298 +{ empty$
   3.299 +    'pop$
   3.300 +    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
   3.301 +  if$
   3.302 +}
   3.303 +
   3.304 +FUNCTION {format.bvolume}
   3.305 +{ volume empty$
   3.306 +    { "" }
   3.307 +    { "volume" volume tie.or.space.connect
   3.308 +      series empty$
   3.309 +	'skip$
   3.310 +	{ " of " * series emphasize * }
   3.311 +      if$
   3.312 +      "volume and number" number either.or.check
   3.313 +    }
   3.314 +  if$
   3.315 +}
   3.316 +
   3.317 +FUNCTION {format.number.series}
   3.318 +{ volume empty$
   3.319 +    { number empty$
   3.320 +	{ series field.or.null }
   3.321 +	{ output.state mid.sentence =
   3.322 +	    { "number" }
   3.323 +	    { "Number" }
   3.324 +	  if$
   3.325 +	  number tie.or.space.connect
   3.326 +	  series empty$
   3.327 +	    { "there's a number but no series in " cite$ * warning$ }
   3.328 +	    { " in " * series * }
   3.329 +	  if$
   3.330 +	}
   3.331 +      if$
   3.332 +    }
   3.333 +    { "" }
   3.334 +  if$
   3.335 +}
   3.336 +
   3.337 +FUNCTION {format.edition}
   3.338 +{ edition empty$
   3.339 +    { "" }
   3.340 +    { output.state mid.sentence =
   3.341 +	{ edition "l" change.case$ " edition" * }
   3.342 +	{ edition "t" change.case$ " edition" * }
   3.343 +      if$
   3.344 +    }
   3.345 +  if$
   3.346 +}
   3.347 +
   3.348 +INTEGERS { multiresult }
   3.349 +
   3.350 +FUNCTION {multi.page.check}
   3.351 +{ 't :=
   3.352 +  #0 'multiresult :=
   3.353 +    { multiresult not
   3.354 +      t empty$ not
   3.355 +      and
   3.356 +    }
   3.357 +    { t #1 #1 substring$
   3.358 +      duplicate$ "-" =
   3.359 +      swap$ duplicate$ "," =
   3.360 +      swap$ "+" =
   3.361 +      or or
   3.362 +	{ #1 'multiresult := }
   3.363 +	{ t #2 global.max$ substring$ 't := }
   3.364 +      if$
   3.365 +    }
   3.366 +  while$
   3.367 +  multiresult
   3.368 +}
   3.369 +
   3.370 +FUNCTION {format.pages}
   3.371 +{ pages empty$
   3.372 +    { "" }
   3.373 +    { pages multi.page.check
   3.374 +	{ "pages" pages n.dashify tie.or.space.connect }
   3.375 +	{ "page" pages tie.or.space.connect }
   3.376 +      if$
   3.377 +    }
   3.378 +  if$
   3.379 +}
   3.380 +
   3.381 +FUNCTION {format.vol.num.pages}
   3.382 +{ volume field.or.null
   3.383 +  number empty$
   3.384 +    'skip$
   3.385 +    { "(" number * ")" * *
   3.386 +      volume empty$
   3.387 +	{ "there's a number but no volume in " cite$ * warning$ }
   3.388 +	'skip$
   3.389 +      if$
   3.390 +    }
   3.391 +  if$
   3.392 +  pages empty$
   3.393 +    'skip$
   3.394 +    { duplicate$ empty$
   3.395 +	{ pop$ format.pages }
   3.396 +	{ ":" * pages n.dashify * }
   3.397 +      if$
   3.398 +    }
   3.399 +  if$
   3.400 +}
   3.401 +
   3.402 +FUNCTION {format.chapter.pages}
   3.403 +{ chapter empty$
   3.404 +    'format.pages
   3.405 +    { type empty$
   3.406 +	{ "chapter" }
   3.407 +	{ type "l" change.case$ }
   3.408 +      if$
   3.409 +      chapter tie.or.space.connect
   3.410 +      pages empty$
   3.411 +	'skip$
   3.412 +	{ ", " * format.pages * }
   3.413 +      if$
   3.414 +    }
   3.415 +  if$
   3.416 +}
   3.417 +
   3.418 +FUNCTION {format.in.ed.booktitle}
   3.419 +{ booktitle empty$
   3.420 +    { "" }
   3.421 +    { editor empty$
   3.422 +	{ "In " booktitle emphasize * }
   3.423 +	{ "In " format.editors * ", " * booktitle emphasize * }
   3.424 +      if$
   3.425 +    }
   3.426 +  if$
   3.427 +}
   3.428 +
   3.429 +FUNCTION {empty.misc.check}
   3.430 +{ author empty$ title empty$ howpublished empty$
   3.431 +  month empty$ year empty$ note empty$
   3.432 +  and and and and and
   3.433 +  key empty$ not and
   3.434 +    { "all relevant fields are empty in " cite$ * warning$ }
   3.435 +    'skip$
   3.436 +  if$
   3.437 +}
   3.438 +
   3.439 +FUNCTION {format.thesis.type}
   3.440 +{ type empty$
   3.441 +    'skip$
   3.442 +    { pop$
   3.443 +      type "t" change.case$
   3.444 +    }
   3.445 +  if$
   3.446 +}
   3.447 +
   3.448 +FUNCTION {format.tr.number}
   3.449 +{ type empty$
   3.450 +    { "Technical Report" }
   3.451 +    'type
   3.452 +  if$
   3.453 +  number empty$
   3.454 +    { "t" change.case$ }
   3.455 +    { number tie.or.space.connect }
   3.456 +  if$
   3.457 +}
   3.458 +
   3.459 +FUNCTION {format.article.crossref}
   3.460 +{ key empty$
   3.461 +    { journal empty$
   3.462 +	{ "need key or journal for " cite$ * " to crossref " * crossref *
   3.463 +	  warning$
   3.464 +	  ""
   3.465 +	}
   3.466 +	{ "In {\em " journal * "\/}" * }
   3.467 +      if$
   3.468 +    }
   3.469 +    { "In " key * }
   3.470 +  if$
   3.471 +  " \cite{" * crossref * "}" *
   3.472 +}
   3.473 +
   3.474 +FUNCTION {format.crossref.editor}
   3.475 +{ editor #1 "{vv~}{ll}" format.name$
   3.476 +  editor num.names$ duplicate$
   3.477 +  #2 >
   3.478 +    { pop$ " et~al." * }
   3.479 +    { #2 <
   3.480 +	'skip$
   3.481 +	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
   3.482 +	    { " et~al." * }
   3.483 +	    { " and " * editor #2 "{vv~}{ll}" format.name$ * }
   3.484 +	  if$
   3.485 +	}
   3.486 +      if$
   3.487 +    }
   3.488 +  if$
   3.489 +}
   3.490 +
   3.491 +FUNCTION {format.book.crossref}
   3.492 +{ volume empty$
   3.493 +    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
   3.494 +      "In "
   3.495 +    }
   3.496 +    { "Volume" volume tie.or.space.connect
   3.497 +      " of " *
   3.498 +    }
   3.499 +  if$
   3.500 +  editor empty$
   3.501 +  editor field.or.null author field.or.null =
   3.502 +  or
   3.503 +    { key empty$
   3.504 +	{ series empty$
   3.505 +	    { "need editor, key, or series for " cite$ * " to crossref " *
   3.506 +	      crossref * warning$
   3.507 +	      "" *
   3.508 +	    }
   3.509 +	    { "{\em " * series * "\/}" * }
   3.510 +	  if$
   3.511 +	}
   3.512 +	{ key * }
   3.513 +      if$
   3.514 +    }
   3.515 +    { format.crossref.editor * }
   3.516 +  if$
   3.517 +  " \cite{" * crossref * "}" *
   3.518 +}
   3.519 +
   3.520 +FUNCTION {format.incoll.inproc.crossref}
   3.521 +{ editor empty$
   3.522 +  editor field.or.null author field.or.null =
   3.523 +  or
   3.524 +    { key empty$
   3.525 +	{ booktitle empty$
   3.526 +	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
   3.527 +	      crossref * warning$
   3.528 +	      ""
   3.529 +	    }
   3.530 +	    { "In {\em " booktitle * "\/}" * }
   3.531 +	  if$
   3.532 +	}
   3.533 +	{ "In " key * }
   3.534 +      if$
   3.535 +    }
   3.536 +    { "In " format.crossref.editor * }
   3.537 +  if$
   3.538 +  " \cite{" * crossref * "}" *
   3.539 +}
   3.540 +
   3.541 +FUNCTION {article}
   3.542 +{ output.bibitem
   3.543 +  format.authors "author" output.check
   3.544 +  new.block
   3.545 +  format.title "title" output.check
   3.546 +  new.block
   3.547 +  crossref missing$
   3.548 +    { journal emphasize "journal" output.check
   3.549 +      format.vol.num.pages output
   3.550 +      format.date "year" output.check
   3.551 +    }
   3.552 +    { format.article.crossref output.nonnull
   3.553 +      format.pages output
   3.554 +    }
   3.555 +  if$
   3.556 +  new.block
   3.557 +  note output
   3.558 +  fin.entry
   3.559 +}
   3.560 +
   3.561 +FUNCTION {book}
   3.562 +{ output.bibitem
   3.563 +  author empty$
   3.564 +    { format.editors "author and editor" output.check }
   3.565 +    { format.authors output.nonnull
   3.566 +      crossref missing$
   3.567 +	{ "author and editor" editor either.or.check }
   3.568 +	'skip$
   3.569 +      if$
   3.570 +    }
   3.571 +  if$
   3.572 +  new.block
   3.573 +  format.btitle "title" output.check
   3.574 +  crossref missing$
   3.575 +    { format.bvolume output
   3.576 +      new.block
   3.577 +      format.number.series output
   3.578 +      new.sentence
   3.579 +      publisher "publisher" output.check
   3.580 +      address output
   3.581 +    }
   3.582 +    { new.block
   3.583 +      format.book.crossref output.nonnull
   3.584 +    }
   3.585 +  if$
   3.586 +  format.edition output
   3.587 +  format.date "year" output.check
   3.588 +  new.block
   3.589 +  note output
   3.590 +  fin.entry
   3.591 +}
   3.592 +
   3.593 +FUNCTION {booklet}
   3.594 +{ output.bibitem
   3.595 +  format.authors output
   3.596 +  new.block
   3.597 +  format.title "title" output.check
   3.598 +  howpublished address new.block.checkb
   3.599 +  howpublished output
   3.600 +  address output
   3.601 +  format.date output
   3.602 +  new.block
   3.603 +  note output
   3.604 +  fin.entry
   3.605 +}
   3.606 +
   3.607 +FUNCTION {inbook}
   3.608 +{ output.bibitem
   3.609 +  author empty$
   3.610 +    { format.editors "author and editor" output.check }
   3.611 +    { format.authors output.nonnull
   3.612 +      crossref missing$
   3.613 +	{ "author and editor" editor either.or.check }
   3.614 +	'skip$
   3.615 +      if$
   3.616 +    }
   3.617 +  if$
   3.618 +  new.block
   3.619 +  format.btitle "title" output.check
   3.620 +  crossref missing$
   3.621 +    { format.bvolume output
   3.622 +      format.chapter.pages "chapter and pages" output.check
   3.623 +      new.block
   3.624 +      format.number.series output
   3.625 +      new.sentence
   3.626 +      publisher "publisher" output.check
   3.627 +      address output
   3.628 +    }
   3.629 +    { format.chapter.pages "chapter and pages" output.check
   3.630 +      new.block
   3.631 +      format.book.crossref output.nonnull
   3.632 +    }
   3.633 +  if$
   3.634 +  format.edition output
   3.635 +  format.date "year" output.check
   3.636 +  new.block
   3.637 +  note output
   3.638 +  fin.entry
   3.639 +}
   3.640 +
   3.641 +FUNCTION {incollection}
   3.642 +{ output.bibitem
   3.643 +  format.authors "author" output.check
   3.644 +  new.block
   3.645 +  format.title "title" output.check
   3.646 +  new.block
   3.647 +  crossref missing$
   3.648 +    { format.in.ed.booktitle "booktitle" output.check
   3.649 +      format.bvolume output
   3.650 +      format.number.series output
   3.651 +      format.chapter.pages output
   3.652 +      new.sentence
   3.653 +      publisher "publisher" output.check
   3.654 +      address output
   3.655 +      format.edition output
   3.656 +      format.date "year" output.check
   3.657 +    }
   3.658 +    { format.incoll.inproc.crossref output.nonnull
   3.659 +      format.chapter.pages output
   3.660 +    }
   3.661 +  if$
   3.662 +  new.block
   3.663 +  note output
   3.664 +  fin.entry
   3.665 +}
   3.666 +
   3.667 +FUNCTION {inproceedings}
   3.668 +{ output.bibitem
   3.669 +  format.authors "author" output.check
   3.670 +  new.block
   3.671 +  format.title "title" output.check
   3.672 +  new.block
   3.673 +  crossref missing$
   3.674 +    { format.in.ed.booktitle "booktitle" output.check
   3.675 +      format.bvolume output
   3.676 +      format.number.series output
   3.677 +      format.pages output
   3.678 +      address empty$
   3.679 +	{ organization publisher new.sentence.checkb
   3.680 +	  organization output
   3.681 +	  publisher output
   3.682 +	  format.date "year" output.check
   3.683 +	}
   3.684 +	{ address output.nonnull
   3.685 +	  format.date "year" output.check
   3.686 +	  new.sentence
   3.687 +	  organization output
   3.688 +	  publisher output
   3.689 +	}
   3.690 +      if$
   3.691 +    }
   3.692 +    { format.incoll.inproc.crossref output.nonnull
   3.693 +      format.pages output
   3.694 +    }
   3.695 +  if$
   3.696 +  new.block
   3.697 +  note output
   3.698 +  fin.entry
   3.699 +}
   3.700 +
   3.701 +FUNCTION {conference} { inproceedings }
   3.702 +
   3.703 +FUNCTION {manual}
   3.704 +{ output.bibitem
   3.705 +  author empty$
   3.706 +    { organization empty$
   3.707 +	'skip$
   3.708 +	{ organization output.nonnull
   3.709 +	  address output
   3.710 +	}
   3.711 +      if$
   3.712 +    }
   3.713 +    { format.authors output.nonnull }
   3.714 +  if$
   3.715 +  new.block
   3.716 +  format.btitle "title" output.check
   3.717 +  author empty$
   3.718 +    { organization empty$
   3.719 +	{ address new.block.checka
   3.720 +	  address output
   3.721 +	}
   3.722 +	'skip$
   3.723 +      if$
   3.724 +    }
   3.725 +    { organization address new.block.checkb
   3.726 +      organization output
   3.727 +      address output
   3.728 +    }
   3.729 +  if$
   3.730 +  format.edition output
   3.731 +  format.date output
   3.732 +  new.block
   3.733 +  note output
   3.734 +  fin.entry
   3.735 +}
   3.736 +
   3.737 +FUNCTION {mastersthesis}
   3.738 +{ output.bibitem
   3.739 +  format.authors "author" output.check
   3.740 +  new.block
   3.741 +  format.title "title" output.check
   3.742 +  new.block
   3.743 +  "Master's thesis" format.thesis.type output.nonnull
   3.744 +  school "school" output.check
   3.745 +  address output
   3.746 +  format.date "year" output.check
   3.747 +  new.block
   3.748 +  note output
   3.749 +  fin.entry
   3.750 +}
   3.751 +
   3.752 +FUNCTION {misc}
   3.753 +{ output.bibitem
   3.754 +  format.authors output
   3.755 +  title howpublished new.block.checkb
   3.756 +  format.title output
   3.757 +  howpublished new.block.checka
   3.758 +  howpublished output
   3.759 +  format.date output
   3.760 +  new.block
   3.761 +  note output
   3.762 +  fin.entry
   3.763 +  empty.misc.check
   3.764 +}
   3.765 +
   3.766 +FUNCTION {phdthesis}
   3.767 +{ output.bibitem
   3.768 +  format.authors "author" output.check
   3.769 +  new.block
   3.770 +  format.btitle "title" output.check
   3.771 +  new.block
   3.772 +  "PhD thesis" format.thesis.type output.nonnull
   3.773 +  school "school" output.check
   3.774 +  address output
   3.775 +  format.date "year" output.check
   3.776 +  new.block
   3.777 +  note output
   3.778 +  fin.entry
   3.779 +}
   3.780 +
   3.781 +FUNCTION {proceedings}
   3.782 +{ output.bibitem
   3.783 +  editor empty$
   3.784 +    { organization output }
   3.785 +    { format.editors output.nonnull }
   3.786 +  if$
   3.787 +  new.block
   3.788 +  format.btitle "title" output.check
   3.789 +  format.bvolume output
   3.790 +  format.number.series output
   3.791 +  address empty$
   3.792 +    { editor empty$
   3.793 +	{ publisher new.sentence.checka }
   3.794 +	{ organization publisher new.sentence.checkb
   3.795 +	  organization output
   3.796 +	}
   3.797 +      if$
   3.798 +      publisher output
   3.799 +      format.date "year" output.check
   3.800 +    }
   3.801 +    { address output.nonnull
   3.802 +      format.date "year" output.check
   3.803 +      new.sentence
   3.804 +      editor empty$
   3.805 +	'skip$
   3.806 +	{ organization output }
   3.807 +      if$
   3.808 +      publisher output
   3.809 +    }
   3.810 +  if$
   3.811 +  new.block
   3.812 +  note output
   3.813 +  fin.entry
   3.814 +}
   3.815 +
   3.816 +FUNCTION {techreport}
   3.817 +{ output.bibitem
   3.818 +  format.authors "author" output.check
   3.819 +  new.block
   3.820 +  format.title "title" output.check
   3.821 +  new.block
   3.822 +  format.tr.number output.nonnull
   3.823 +  institution "institution" output.check
   3.824 +  address output
   3.825 +  format.date "year" output.check
   3.826 +  new.block
   3.827 +  note output
   3.828 +  fin.entry
   3.829 +}
   3.830 +
   3.831 +FUNCTION {unpublished}
   3.832 +{ output.bibitem
   3.833 +  format.authors "author" output.check
   3.834 +  new.block
   3.835 +  format.title "title" output.check
   3.836 +  new.block
   3.837 +  note "note" output.check
   3.838 +  format.date output
   3.839 +  fin.entry
   3.840 +}
   3.841 +
   3.842 +FUNCTION {default.type} { misc }
   3.843 +
   3.844 +MACRO {jan} {"January"}
   3.845 +
   3.846 +MACRO {feb} {"February"}
   3.847 +
   3.848 +MACRO {mar} {"March"}
   3.849 +
   3.850 +MACRO {apr} {"April"}
   3.851 +
   3.852 +MACRO {may} {"May"}
   3.853 +
   3.854 +MACRO {jun} {"June"}
   3.855 +
   3.856 +MACRO {jul} {"July"}
   3.857 +
   3.858 +MACRO {aug} {"August"}
   3.859 +
   3.860 +MACRO {sep} {"September"}
   3.861 +
   3.862 +MACRO {oct} {"October"}
   3.863 +
   3.864 +MACRO {nov} {"November"}
   3.865 +
   3.866 +MACRO {dec} {"December"}
   3.867 +
   3.868 +MACRO {acmcs} {"ACM Computing Surveys"}
   3.869 +
   3.870 +MACRO {acta} {"Acta Informatica"}
   3.871 +
   3.872 +MACRO {cacm} {"Communications of the ACM"}
   3.873 +
   3.874 +MACRO {ibmjrd} {"IBM Journal of Research and Development"}
   3.875 +
   3.876 +MACRO {ibmsj} {"IBM Systems Journal"}
   3.877 +
   3.878 +MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
   3.879 +
   3.880 +MACRO {ieeetc} {"IEEE Transactions on Computers"}
   3.881 +
   3.882 +MACRO {ieeetcad}
   3.883 + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
   3.884 +
   3.885 +MACRO {ipl} {"Information Processing Letters"}
   3.886 +
   3.887 +MACRO {jacm} {"Journal of the ACM"}
   3.888 +
   3.889 +MACRO {jcss} {"Journal of Computer and System Sciences"}
   3.890 +
   3.891 +MACRO {scp} {"Science of Computer Programming"}
   3.892 +
   3.893 +MACRO {sicomp} {"SIAM Journal on Computing"}
   3.894 +
   3.895 +MACRO {tocs} {"ACM Transactions on Computer Systems"}
   3.896 +
   3.897 +MACRO {tods} {"ACM Transactions on Database Systems"}
   3.898 +
   3.899 +MACRO {tog} {"ACM Transactions on Graphics"}
   3.900 +
   3.901 +MACRO {toms} {"ACM Transactions on Mathematical Software"}
   3.902 +
   3.903 +MACRO {toois} {"ACM Transactions on Office Information Systems"}
   3.904 +
   3.905 +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
   3.906 +
   3.907 +MACRO {tcs} {"Theoretical Computer Science"}
   3.908 +
   3.909 +READ
   3.910 +
   3.911 +FUNCTION {sortify}
   3.912 +{ purify$
   3.913 +  "l" change.case$
   3.914 +}
   3.915 +
   3.916 +INTEGERS { len }
   3.917 +
   3.918 +FUNCTION {chop.word}
   3.919 +{ 's :=
   3.920 +  'len :=
   3.921 +  s #1 len substring$ =
   3.922 +    { s len #1 + global.max$ substring$ }
   3.923 +    's
   3.924 +  if$
   3.925 +}
   3.926 +
   3.927 +FUNCTION {sort.format.names}
   3.928 +{ 's :=
   3.929 +  #1 'nameptr :=
   3.930 +  ""
   3.931 +  s num.names$ 'numnames :=
   3.932 +  numnames 'namesleft :=
   3.933 +    { namesleft #0 > }
   3.934 +    { nameptr #1 >
   3.935 +	{ "   " * }
   3.936 +	'skip$
   3.937 +      if$
   3.938 +      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
   3.939 +      nameptr numnames = t "others" = and
   3.940 +	{ "et al" * }
   3.941 +	{ t sortify * }
   3.942 +      if$
   3.943 +      nameptr #1 + 'nameptr :=
   3.944 +      namesleft #1 - 'namesleft :=
   3.945 +    }
   3.946 +  while$
   3.947 +}
   3.948 +
   3.949 +FUNCTION {sort.format.title}
   3.950 +{ 't :=
   3.951 +  "A " #2
   3.952 +    "An " #3
   3.953 +      "The " #4 t chop.word
   3.954 +    chop.word
   3.955 +  chop.word
   3.956 +  sortify
   3.957 +  #1 global.max$ substring$
   3.958 +}
   3.959 +
   3.960 +FUNCTION {author.sort}
   3.961 +{ author empty$
   3.962 +    { key empty$
   3.963 +	{ "to sort, need author or key in " cite$ * warning$
   3.964 +	  ""
   3.965 +	}
   3.966 +	{ key sortify }
   3.967 +      if$
   3.968 +    }
   3.969 +    { author sort.format.names }
   3.970 +  if$
   3.971 +}
   3.972 +
   3.973 +FUNCTION {author.editor.sort}
   3.974 +{ author empty$
   3.975 +    { editor empty$
   3.976 +	{ key empty$
   3.977 +	    { "to sort, need author, editor, or key in " cite$ * warning$
   3.978 +	      ""
   3.979 +	    }
   3.980 +	    { key sortify }
   3.981 +	  if$
   3.982 +	}
   3.983 +	{ editor sort.format.names }
   3.984 +      if$
   3.985 +    }
   3.986 +    { author sort.format.names }
   3.987 +  if$
   3.988 +}
   3.989 +
   3.990 +FUNCTION {author.organization.sort}
   3.991 +{ author empty$
   3.992 +    { organization empty$
   3.993 +	{ key empty$
   3.994 +	    { "to sort, need author, organization, or key in " cite$ * warning$
   3.995 +	      ""
   3.996 +	    }
   3.997 +	    { key sortify }
   3.998 +	  if$
   3.999 +	}
  3.1000 +	{ "The " #4 organization chop.word sortify }
  3.1001 +      if$
  3.1002 +    }
  3.1003 +    { author sort.format.names }
  3.1004 +  if$
  3.1005 +}
  3.1006 +
  3.1007 +FUNCTION {editor.organization.sort}
  3.1008 +{ editor empty$
  3.1009 +    { organization empty$
  3.1010 +	{ key empty$
  3.1011 +	    { "to sort, need editor, organization, or key in " cite$ * warning$
  3.1012 +	      ""
  3.1013 +	    }
  3.1014 +	    { key sortify }
  3.1015 +	  if$
  3.1016 +	}
  3.1017 +	{ "The " #4 organization chop.word sortify }
  3.1018 +      if$
  3.1019 +    }
  3.1020 +    { editor sort.format.names }
  3.1021 +  if$
  3.1022 +}
  3.1023 +
  3.1024 +FUNCTION {presort}
  3.1025 +{ type$ "book" =
  3.1026 +  type$ "inbook" =
  3.1027 +  or
  3.1028 +    'author.editor.sort
  3.1029 +    { type$ "proceedings" =
  3.1030 +	'editor.organization.sort
  3.1031 +	{ type$ "manual" =
  3.1032 +	    'author.organization.sort
  3.1033 +	    'author.sort
  3.1034 +	  if$
  3.1035 +	}
  3.1036 +      if$
  3.1037 +    }
  3.1038 +  if$
  3.1039 +  "    "
  3.1040 +  *
  3.1041 +  year field.or.null sortify
  3.1042 +  *
  3.1043 +  "    "
  3.1044 +  *
  3.1045 +  title field.or.null
  3.1046 +  sort.format.title
  3.1047 +  *
  3.1048 +  #1 entry.max$ substring$
  3.1049 +  'sort.key$ :=
  3.1050 +}
  3.1051 +
  3.1052 +ITERATE {presort}
  3.1053 +
  3.1054 +SORT
  3.1055 +
  3.1056 +STRINGS { longest.label }
  3.1057 +
  3.1058 +INTEGERS { number.label longest.label.width }
  3.1059 +
  3.1060 +FUNCTION {initialize.longest.label}
  3.1061 +{ "" 'longest.label :=
  3.1062 +  #1 'number.label :=
  3.1063 +  #0 'longest.label.width :=
  3.1064 +}
  3.1065 +
  3.1066 +FUNCTION {longest.label.pass}
  3.1067 +{ number.label int.to.str$ 'label :=
  3.1068 +  number.label #1 + 'number.label :=
  3.1069 +  label width$ longest.label.width >
  3.1070 +    { label 'longest.label :=
  3.1071 +      label width$ 'longest.label.width :=
  3.1072 +    }
  3.1073 +    'skip$
  3.1074 +  if$
  3.1075 +}
  3.1076 +
  3.1077 +EXECUTE {initialize.longest.label}
  3.1078 +
  3.1079 +ITERATE {longest.label.pass}
  3.1080 +
  3.1081 +FUNCTION {begin.bib}
  3.1082 +{ preamble$ empty$
  3.1083 +    'skip$
  3.1084 +    { preamble$ write$ newline$ }
  3.1085 +  if$
  3.1086 +  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  3.1087 +}
  3.1088 +
  3.1089 +EXECUTE {begin.bib}
  3.1090 +
  3.1091 +EXECUTE {init.state.consts}
  3.1092 +
  3.1093 +ITERATE {call.type$}
  3.1094 +
  3.1095 +FUNCTION {end.bib}
  3.1096 +{ newline$
  3.1097 +  "\end{thebibliography}" write$ newline$
  3.1098 +}
  3.1099 +
  3.1100 +EXECUTE {end.bib}
  3.1101 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/url.sty	Thu Feb 02 12:22:53 2012 -0800
     4.3 @@ -0,0 +1,325 @@
     4.4 +% url.sty  ver 1.4    02-Mar-1999   Donald Arseneau   asnd@triumf.ca
     4.5 +% Copyright 1996-1999 Donald Arseneau,  Vancouver, Canada.
     4.6 +% This program can be used, distributed, and modified under the terms
     4.7 +% of the LaTeX Project Public License.
     4.8 +%
     4.9 +% A form of \verb that allows linebreaks at certain characters or
    4.10 +% combinations of characters, accepts reconfiguration, and can usually
    4.11 +% be used in the argument to another command.  It is intended for email
    4.12 +% addresses, hypertext links, directories/paths, etc., which normally
    4.13 +% have no spaces.  The font may be selected using the \urlstyle command,
    4.14 +% and new url-like commands can be defined using \urldef.
    4.15 +%
    4.16 +% Usage:    Conditions:
    4.17 +% \url{ }   If the argument contains any "%", "#", or "^^", or ends with
    4.18 +%           "\", it can't be used in the argument to another command.
    4.19 +%           The argument must not contain unbalanced braces.
    4.20 +% \url|  |  ...where "|" is any character not used in the argument and not
    4.21 +%           "{" or a space.  The same restrictions as above except that the
    4.22 +%           argument may contain unbalanced braces.
    4.23 +% \xyz      for "\xyz" a defined-url;  this can be used anywhere, no matter
    4.24 +%           what characters it contains.
    4.25 +%
    4.26 +% See further instructions after "\endinput"
    4.27 +%
    4.28 +\def\Url@ttdo{% style assignments for tt fonts or T1 encoding
    4.29 +\def\UrlBreaks{\do\.\do\@\do\\\do\/\do\!\do\_\do\|\do\%\do\;\do\>\do\]%
    4.30 + \do\)\do\,\do\?\do\'\do\+\do\=}%
    4.31 +\def\UrlBigBreaks{\do\:\do@url@hyp}%
    4.32 +\def\UrlNoBreaks{\do\(\do\[\do\{\do\<}% (unnecessary)
    4.33 +\def\UrlSpecials{\do\ {\ }}%
    4.34 +\def\UrlOrds{\do\*\do\-\do\~}% any ordinary characters that aren't usually
    4.35 +}
    4.36 +\def\Url@do{% style assignments for OT1 fonts except tt
    4.37 +\def\UrlBreaks{\do\.\do\@\do\/\do\!\do\%\do\;\do\]\do\)\do\,\do\?\do\+\do\=}%
    4.38 +\def\UrlBigBreaks{\do\:\do@url@hyp}%
    4.39 +\def\UrlNoBreaks{\do\(\do\[\do\{}% prevents breaks after *next* character
    4.40 +\def\UrlSpecials{\do\<{\langle}\do\>{\mathbin{\rangle}}\do\_{\_%
    4.41 + \penalty\@m}\do\|{\mid}\do\{{\lbrace}\do\}{\mathbin{\rbrace}}\do
    4.42 + \\{\mathbin{\backslash}}\do\~{\raise.6ex\hbox{\m@th$\scriptstyle\sim$}}\do
    4.43 + \ {\ }}%
    4.44 +\def\UrlOrds{\do\'\do\"\do\-}%
    4.45 +}
    4.46 +\def\url@ttstyle{%
    4.47 +\@ifundefined{selectfont}{\def\UrlFont{\tt}}{\def\UrlFont{\ttfamily}}\Url@ttdo
    4.48 +}
    4.49 +\def\url@rmstyle{%
    4.50 +\@ifundefined{selectfont}{\def\UrlFont{\rm}}{\def\UrlFont{\rmfamily}}\Url@do
    4.51 +}
    4.52 +\def\url@sfstyle{%
    4.53 +\@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\sffamily}}\Url@do
    4.54 +}
    4.55 +\def\url@samestyle{\ifdim\fontdimen\thr@@\font=\z@ \url@ttstyle \else
    4.56 +  \url@rmstyle \fi \def\UrlFont{}}
    4.57 +
    4.58 +\@ifundefined{strip@prefix}{\def\strip@prefix#1>{}}{}
    4.59 +\@ifundefined{verbatim@nolig@list}{\def\verbatim@nolig@list{\do\`}}{}
    4.60 +
    4.61 +\def\Url{%
    4.62 + \begingroup \let\url@moving\relax\relax \endgroup
    4.63 + \ifmmode\@nomatherr$\fi
    4.64 + \UrlFont $\fam\z@ \textfont\z@\font
    4.65 + \let\do\@makeother \dospecials % verbatim catcodes
    4.66 + \catcode`{\@ne \catcode`}\tw@ \catcode`\ 10 % except braces and spaces
    4.67 + \medmuskip0mu \thickmuskip\medmuskip \thinmuskip\medmuskip
    4.68 + \@tempcnta\fam\multiply\@tempcnta\@cclvi
    4.69 + \let\do\set@mathcode \UrlOrds % ordinary characters that were special
    4.70 + \advance\@tempcnta 8192 \UrlBreaks % bin
    4.71 + \advance\@tempcnta 4096 \UrlBigBreaks % rel
    4.72 + \advance\@tempcnta 4096 \UrlNoBreaks % open
    4.73 + \let\do\set@mathact \UrlSpecials % active
    4.74 + \let\do\set@mathnolig \verbatim@nolig@list % prevent ligatures
    4.75 + \@ifnextchar\bgroup\Url@z\Url@y}
    4.76 +
    4.77 +\def\Url@y#1{\catcode`{11 \catcode`}11
    4.78 +  \def\@tempa##1#1{\Url@z{##1}}\@tempa}
    4.79 +\def\Url@z#1{\def\@tempa{#1}\expandafter\expandafter\expandafter\Url@Hook
    4.80 +  \expandafter\strip@prefix\meaning\@tempa\UrlRight\m@th$\endgroup}
    4.81 +\def\Url@Hook{\UrlLeft}
    4.82 +\let\UrlRight\@empty
    4.83 +\let\UrlLeft\@empty
    4.84 +
    4.85 +\def\set@mathcode#1{\count@`#1\advance\count@\@tempcnta\mathcode`#1\count@}
    4.86 +\def\set@mathact#1#2{\mathcode`#132768 \lccode`\~`#1\lowercase{\def~{#2}}}
    4.87 +\def\set@mathnolig#1{\ifnum\mathcode`#1<32768
    4.88 +   \lccode`\~`#1\lowercase{\edef~{\mathchar\number\mathcode`#1_{\/}}}%
    4.89 +   \mathcode`#132768 \fi}
    4.90 +
    4.91 +\def\urldef#1#2{\begingroup \setbox\z@\hbox\bgroup
    4.92 +  \def\Url@z{\Url@def{#1}{#2}}#2}
    4.93 +\expandafter\ifx\csname DeclareRobustCommand\endcsname\relax
    4.94 +  \def\Url@def#1#2#3{\m@th$\endgroup\egroup\endgroup
    4.95 +    \def#1{#2{#3}}}
    4.96 +\else
    4.97 +  \def\Url@def#1#2#3{\m@th$\endgroup\egroup\endgroup
    4.98 +    \DeclareRobustCommand{#1}{#2{#3}}}
    4.99 +\fi
   4.100 +
   4.101 +\def\urlstyle#1{\csname url@#1style\endcsname}
   4.102 +
   4.103 +% Sample (and default) configuration:
   4.104 +%
   4.105 +\newcommand\url{\begingroup \Url}
   4.106 +%
   4.107 +% picTeX defines \path, so declare it optionally:
   4.108 +\@ifundefined{path}{\newcommand\path{\begingroup \urlstyle{tt}\Url}}{}
   4.109 +%
   4.110 +% too many styles define \email like \address, so I will not define it.
   4.111 +% \newcommand\email{\begingroup \urlstyle{rm}\Url}
   4.112 +
   4.113 +% Process LaTeX \package options
   4.114 +%
   4.115 +\urlstyle{tt}
   4.116 +\let\Url@sppen\@M
   4.117 +\def\do@url@hyp{}% by default, no breaks after hyphens
   4.118 +
   4.119 +\@ifundefined{ProvidesPackage}{}{
   4.120 +  \ProvidesPackage{url}[1999/03/02 \space ver 1.4 \space
   4.121 +       Verb mode for urls, email addresses, and file names]
   4.122 +  \DeclareOption{hyphens}{\def\do@url@hyp{\do\-}}% allow breaks after hyphens
   4.123 +  \DeclareOption{obeyspaces}{\let\Url@Hook\relax}% a flag for later
   4.124 +  \DeclareOption{spaces}{\let\Url@sppen\relpenalty}
   4.125 +  \DeclareOption{T1}{\let\Url@do\Url@ttdo}
   4.126 +  \ProcessOptions
   4.127 +\ifx\Url@Hook\relax % [obeyspaces] was declared
   4.128 +  \def\Url@Hook#1\UrlRight\m@th{\edef\@tempa{\noexpand\UrlLeft
   4.129 +    \Url@retain#1\Url@nosp\, }\@tempa\UrlRight\m@th}
   4.130 +  \def\Url@retain#1 {#1\penalty\Url@sppen\ \Url@retain}
   4.131 +  \def\Url@nosp\,#1\Url@retain{}
   4.132 +\fi
   4.133 +}
   4.134 +
   4.135 +\edef\url@moving{\csname Url Error\endcsname}
   4.136 +\expandafter\edef\url@moving
   4.137 + {\csname url used in a moving argument.\endcsname}
   4.138 +\expandafter\expandafter\expandafter \let \url@moving\undefined 
   4.139 +
   4.140 +\endinput
   4.141 +%
   4.142 +% url.sty  ver 1.4   02-Mar-1999   Donald Arseneau   asnd@reg.triumf.ca
   4.143 +%
   4.144 +% This package defines "\url", a form of "\verb" that allows linebreaks,
   4.145 +% and can often be used in the argument to another command.  It can be
   4.146 +% configured to print in different formats, and is particularly useful for
   4.147 +% hypertext links, email addresses, directories/paths, etc.  The font may
   4.148 +% be selected using the "\urlstyle" command and pre-defined text can be
   4.149 +% stored with the "\urldef" command. New url-like commands can be defined,
   4.150 +% and a "\path" command is provided this way.
   4.151 +%
   4.152 +% Usage:    Conditions:
   4.153 +% \url{ }   If the argument contains any "%", "#", or "^^", or ends with
   4.154 +%           "\", it can't be used in the argument to another command.
   4.155 +%           The argument must not contain unbalanced braces.
   4.156 +% \url|  |  ...where "|" is any character not used in the argument and not
   4.157 +%           "{" or a space.  The same restrictions as above except that the
   4.158 +%           argument may contain unbalanced braces.
   4.159 +% \xyz      for "\xyz" a defined-url;  this can be used anywhere, no matter
   4.160 +%           what characters it contains.
   4.161 +%
   4.162 +% The "\url" command is fragile, and its argument is likely to be very
   4.163 +% fragile, but a defined-url is robust.
   4.164 +%
   4.165 +% Package Option:  obeyspaces
   4.166 +% Ordinarily, all spaces are ignored in the url-text.  The "[obeyspaces]"
   4.167 +% option allows spaces, but may introduce spurious spaces when a url
   4.168 +% containing "\" characters is given in the argument to another command.
   4.169 +% So if you need to obey spaces you can say "\usepackage[obeyspaces]{url}",
   4.170 +% and if you need both spaces and backslashes, use a `defined-url' for
   4.171 +% anything with "\".
   4.172 +%
   4.173 +% Package Option:  hyphens
   4.174 +% Ordinarily, breaks are not allowed after "-" characters because this
   4.175 +% leads to confusion. (Is the "-" part of the address or just a hyphen?)
   4.176 +% The package option "[hyphens]" allows breaks after explicit hyphen
   4.177 +% characters.  The "\url" command will *never ever* hyphenate words.
   4.178 +%
   4.179 +% Package Option:  spaces
   4.180 +% Likewise, breaks are not usually allowed after spaces under the
   4.181 +% "[obeyspaces]" option, but giving the options "[obeyspaces,spaces]"
   4.182 +% will allow breaks at those spaces.
   4.183 +%
   4.184 +% Package Option:  T1
   4.185 +% This signifies that you will be using T1-encoded fonts which contain
   4.186 +% some characters missing from most older (OT1) encoded TeX fonts.  This
   4.187 +% changes the default definition for "\urlstyle{rm}".
   4.188 +%
   4.189 +% Defining a defined-url:
   4.190 +% Take for example the email address "myself%node@gateway.net" which could
   4.191 +% not be given (using "\url" or "\verb") in a caption or parbox due to the
   4.192 +% percent sign.  This address can be predefined with
   4.193 +%    \urldef{\myself}\url{myself%node@gateway.net}   or
   4.194 +%    \urldef{\myself}\url|myself%node@gateway.net|
   4.195 +% and then you may use "\myself" instead of "\url{myself%node@gateway.net}"
   4.196 +% in an argument, and even in a moving argument like a caption because a
   4.197 +% defined-url is robust.
   4.198 +%
   4.199 +% Style:
   4.200 +% You can switch the style of printing using "\urlstyle{tt}", where "tt"
   4.201 +% can be any defined style.  The pre-defined styles are "tt", "rm", "sf",
   4.202 +% and "same" which all allow the same linebreaks but different fonts --
   4.203 +% the first three select a specific font and the "same" style uses the
   4.204 +% current text font.  You can define your own styles with different fonts
   4.205 +% and/or line-breaking by following the explanations below.  The "\url"
   4.206 +% command follows whatever the currently-set style dictates.
   4.207 +%
   4.208 +% Alternate commands:
   4.209 +% It may be desireable to have different things treated differently, each
   4.210 +% in a predefined style; e.g., if you want directory paths to always be
   4.211 +% in tt and email addresses to be rm, then you would define new url-like
   4.212 +% commands as follows:
   4.213 +%
   4.214 +%    \newcommand\email{\begingroup \urlstyle{rm}\Url}
   4.215 +%    \newcommand\directory{\begingroup \urlstyle{tt}\Url}
   4.216 +%
   4.217 +% You must follow this format closely, and NOTE that the final command is
   4.218 +% "\Url", not "\url".  In fact, the "\directory" example is exactly the
   4.219 +% "\path" definition which is pre-defined in the package.  If you look
   4.220 +% above, you will see that "\url" is defined with
   4.221 +%    \newcommand\url{\begingroup \Url}
   4.222 +% I.e., using whatever url-style has been selected.
   4.223 +%
   4.224 +% You can make a defined-url for these other styles, using the usual
   4.225 +% "\urldef" command as in this example:
   4.226 +%
   4.227 +%    \urldef{\myself}{\email}{myself%node.domain@gateway.net}
   4.228 +%
   4.229 +% which makes "\myself" act like "\email{myself%node.domain@gateway.net}",
   4.230 +% if the "\email" command is defined as above.  The "\myself" command
   4.231 +% would then be robust.
   4.232 +%
   4.233 +% Defining styles:
   4.234 +% Before describing how to customize the printing style, it is best to
   4.235 +% mention something about the unusual implementation of "\url".  Although
   4.236 +% the material is textual in nature, and the font specification required
   4.237 +% is a text-font command, the text is actually typeset in *math* mode.
   4.238 +% This allows the context-sensitive linebreaking, but also accounts for
   4.239 +% the default behavior of ignoring spaces.  Now on to defining styles.
   4.240 +%
   4.241 +% To change the font or the list of characters that allow linebreaks, you
   4.242 +% could redefine the commands "\UrlFont", "\UrlBreaks", "\UrlSpecials" etc.
   4.243 +% directly in the document, but it is better to define a new `url-style'
   4.244 +% (following the example of "\url@ttstyle" and "\url@rmstyle") which defines
   4.245 +% all of "\UrlBigbreaks", "\UrlNoBreaks", "\UrlBreaks", "\UrlSpecials", and
   4.246 +% "\UrlFont".
   4.247 +%
   4.248 +% Changing font:
   4.249 +% The "\UrlFont" command selects the font.  The definition of "\UrlFont"
   4.250 +% done by the pre-defined styles varies to cope with a variety of LaTeX
   4.251 +% font selection schemes, but it could be as simple as "\def\UrlFont{\tt}".
   4.252 +% Depending on the font selected, some characters may need to be defined
   4.253 +% in the "\UrlSpecials" list because many fonts don't contain all the
   4.254 +% standard input characters.
   4.255 +%
   4.256 +% Changing linebreaks:
   4.257 +% The list of characters that allow line-breaks is given by "\UrlBreaks"
   4.258 +% and "\UrlBigBreaks", which have the format "\do\c" for character "c".
   4.259 +% The differences are that `BigBreaks' have a lower penalty and have
   4.260 +% different breakpoints when in sequence (as in "http://"): `BigBreaks'
   4.261 +% are treated as mathrels while `Breaks' are mathbins (see The TeXbook,
   4.262 +% p.170). In particular, a series of `BigBreak' characters will break at
   4.263 +% the end and only at the end; a series of `Break' characters will break
   4.264 +% after the first and after every following *pair*; there will be no
   4.265 +% break after a `Break' character if a `BigBreak' follows.  In the case
   4.266 +% of "http://" it doesn't matter whether ":" is a `Break' or `BigBreak' --
   4.267 +% the breaks are the same in either case; but for DECnet nodes with "::"
   4.268 +% it is important to prevent breaks *between* the colons, and that is why
   4.269 +% colons are `BigBreaks'.
   4.270 +%
   4.271 +% It is possible for characters to prevent breaks after the next following
   4.272 +% character (I use this for parentheses).  Specify these in "\UrlNoBreaks".
   4.273 +%
   4.274 +% You can do arbitrarily complex things with characters by making them
   4.275 +% active in math mode (mathcode hex-8000) and specifying the definition(s)
   4.276 +% in "\UrlSpecials".  This is used in the rm and sf styles for OT1 font
   4.277 +% encoding to handle several characters that are not present in those
   4.278 +% computer-modern style fonts.  See the definition of "\Url@do", which
   4.279 +% is used by both "\url@rmstyle" and "\url@sfstyle"; it handles missing
   4.280 +% characters via "\UrlSpecials".  The nominal format for setting each
   4.281 +% special character "c" is: "\do\c{<definition>}", but you can include
   4.282 +% other definitions too.
   4.283 +%
   4.284 +%
   4.285 +% If all this sounds confusing ... well, it is!  But I hope you won't need
   4.286 +% to redefine breakpoints -- the default assignments seem to work well for
   4.287 +% a wide variety of applications.  If you do need to make changes, you can
   4.288 +% test for breakpoints using regular math mode and the characters "+=(a".
   4.289 +%
   4.290 +% Yet more flexibility:
   4.291 +% You can also customize the verbatim text by defining "\UrlRight" and/or
   4.292 +% "\UrlLeft", e.g., for ISO formatting of urls surrounded by "<  >", define
   4.293 +%
   4.294 +%    \renewcommand\url{\begingroup \def\UrlLeft{<url: }\def\UrlRight{>}%
   4.295 +%        \urlstyle{tt}\Url}
   4.296 +%
   4.297 +% The meanings of "\UrlLeft" and "\UrlRight" are *not* reproduced verbatim.
   4.298 +% This lets you use formatting commands there, but you must be careful not
   4.299 +% to use TeX's special characters ("\^_%~#$&{}" etc.) improperly.
   4.300 +% You can also define "\UrlLeft" to reprocess the verbatim text, but the
   4.301 +% format of the definition is special:
   4.302 +%
   4.303 +%    \def\UrlLeft#1\UrlRight{ ... do things with #1 ... }
   4.304 +%
   4.305 +% Yes, that is "#1" followed by "\UrlRight" then the definition.  For
   4.306 +% example, to put a hyperTeX hypertext link in the DVI file:
   4.307 +%
   4.308 +%    \def\UrlLeft#1\UrlRight{\special{html:<a href="#1">}#1\special{html:</a>}}
   4.309 +%
   4.310 +% Using this technique, url.sty can provide a convenient interface for
   4.311 +% performing various operations on verbatim text.  You don't even need
   4.312 +% to print out the argument!  For greatest efficiency in such obscure
   4.313 +% applications, you can define a null url-style where all the lists like
   4.314 +% "\UrlBreaks" are empty.
   4.315 +%
   4.316 +% Revision History:
   4.317 +% ver 1.1 6-Feb-1996: 
   4.318 +% Fix hyphens that wouldn't break and ligatures that weren't suppressed.
   4.319 +% ver 1.2 19-Oct-1996:
   4.320 +% Package option for T1 encoding; Hooks: "\UrlLeft" and "\UrlRight".
   4.321 +% ver 1.3 21-Jul-1997:
   4.322 +% Prohibit spaces as delimiter characters; change ascii tilde in OT1.
   4.323 +% ver 1.4 02-Mar-1999
   4.324 +% LaTeX license; moving-argument-error
   4.325 +% The End
   4.326 +
   4.327 +Test file integrity:  ASCII 32-57, 58-126:  !"#$%&'()*+,-./0123456789
   4.328 +:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/usetex-v1-anon.cls	Thu Feb 02 12:22:53 2012 -0800
     5.3 @@ -0,0 +1,363 @@
     5.4 +\NeedsTeXFormat{LaTeX2e}
     5.5 +\ProvidesClass{usetex-v1-anon}[2002/10/31 v1.2 usetex Usenix article class]
     5.6 +
     5.7 +% usetex-v1.cls - to be used with LaTeX2e for Usenix articles
     5.8 +%
     5.9 +% To use this style file, do this:
    5.10 +%
    5.11 +%    \documentclass{usetex-v1}
    5.12 +%
    5.13 +% The following definitions are modifications of standard article.cls
    5.14 +% definitions, arranged to do a better job of matching the Usenix
    5.15 +% guidelines. and make for convenient Usenix paper writing
    5.16 +%
    5.17 +% Choose the appropriate option:
    5.18 +%
    5.19 +% 1. workingdraft:
    5.20 +%
    5.21 +%       For initial submission and shepherding.  Features prominent
    5.22 +%       date, notice of draft status, page numbers, and annotation
    5.23 +%       facilities.
    5.24 +%
    5.25 +% 2. proof:
    5.26 +%
    5.27 +%         A galley proof identical to the final copy except for page
    5.28 +%         numbering and proof date on the bottom.  Annotations are
    5.29 +%         removed.
    5.30 +%
    5.31 +% 3. webversion:
    5.32 +%
    5.33 +%       A web-publishable version, uses \docstatus{} to indicate
    5.34 +%       publication information (where and when paper was published),
    5.35 +%       and page numbers.
    5.36 +%
    5.37 +% 4. finalversion:
    5.38 +%
    5.39 +%       The final camera-ready-copy (CRC) version of the paper.
    5.40 +%       Published in conference proceedings.  This doesn't include
    5.41 +%       page numbers, annotations, or draft status (Usenix adds
    5.42 +%       headers, footers, and page numbers onto the CRC).
    5.43 +%
    5.44 +% If several are used, the last one in this list wins
    5.45 +%
    5.46 +
    5.47 +%
    5.48 +% In addition, the option "endnotes" permits the use of the
    5.49 +% otherwise-disabled, Usenix-deprecated footnote{} command in
    5.50 +% documents.  In this case, be sure to include a
    5.51 +% \makeendnotes command at the end of your document or
    5.52 +% the endnotes will not actually appear.
    5.53 +%
    5.54 +
    5.55 +\newif\if@draftcopy \newif\ifworkingdraft
    5.56 +\DeclareOption{workingdraft}{\workingdrafttrue\@draftcopytrue}
    5.57 +\newif\ifproof \DeclareOption{proof}{\prooftrue\@draftcopytrue}
    5.58 +\newif\ifwebversion
    5.59 +\DeclareOption{webversion}{\prooftrue\webversiontrue\@draftcopytrue}
    5.60 +\DeclareOption{finalversion}{}
    5.61 +\newif\ifhasendnotes
    5.62 +\DeclareOption{endnotes}{\hasendnotestrue}
    5.63 +
    5.64 +% pass all other options to the article class
    5.65 +\DeclareOption*{%
    5.66 +  \PassOptionsToClass{\CurrentOption}{article}%
    5.67 +}
    5.68 +
    5.69 +% actually process the options
    5.70 +\ProcessOptions
    5.71 +
    5.72 +% usetex is based on article
    5.73 +\LoadClass[twocolumn]{article}
    5.74 +
    5.75 +% Footnotes are not currently allowed, but
    5.76 +% endnotes (while a bad idea) are.
    5.77 +\ifhasendnotes
    5.78 +  \RequirePackage{endnotes}
    5.79 +\fi
    5.80 +
    5.81 +% save any provided document status information
    5.82 +\def\@docstatus{}
    5.83 +\def\docstatus#1{\gdef\@docstatus{#1}}
    5.84 +
    5.85 +\ifworkingdraft
    5.86 +
    5.87 +  % formatting helper for draft notes
    5.88 +  \newcommand{\@noteleader[1]}{%
    5.89 +    {\marginpar{\framebox{\scriptsize\textbf{#1}}}}%
    5.90 +    \bfseries\itshape
    5.91 +  }
    5.92 +
    5.93 +  % put a small anonymous editing note in the draft copy
    5.94 +  \newcommand{\edannote}[1]{{\@noteleader[note] (#1)}}
    5.95 +
    5.96 +  % put a small attributed editing note in the draft copy
    5.97 +  \newcommand{\edatnote}[2]{{\@noteleader[#1] #2}}
    5.98 +
    5.99 +  % put an attributed editing note paragraph in the draft copy
   5.100 +  \newenvironment{ednote}[1]
   5.101 +    {\newcommand{\who}{#1}\@noteleader[\who]}
   5.102 +
   5.103 +  % mark a spot where work has been left off for later
   5.104 +  \newcommand{\HERE}{%
   5.105 +    {\mbox{}\marginpar{\framebox{\textbf{here}}}}{\bf\ldots}}
   5.106 +
   5.107 +\else
   5.108 +
   5.109 +  % dummy versions of editing commands to produce warnings
   5.110 +
   5.111 +  \newcommand{\edannote}[1]{\@latex@warning
   5.112 +    {Leftover edannote command in final version ignored}}
   5.113 +
   5.114 +  \newcommand{\edatnote}[1]{\@latex@warning
   5.115 +    {Leftover edatnote command in final version ignored}}
   5.116 +
   5.117 +  \newsavebox{\@discard}
   5.118 +  \newenvironment{ednote}[1]{\@latex@warning
   5.119 +    {Leftover ednote environment in final version ignored}%
   5.120 +    \begin{lrbox}{\@discard}}{\end{lrbox}}
   5.121 +
   5.122 +  \newcommand{\HERE}{\@latex@warning
   5.123 +    {Leftover HERE command in final version ignored}}
   5.124 +
   5.125 +\fi
   5.126 +
   5.127 +% set up the footers appropriately
   5.128 +\def\@setfoot{%
   5.129 +  \ifwebversion
   5.130 +    % webversions get whatever status the author says
   5.131 +    \gdef\@evenfoot{\@docstatus \hfil \thepage}%
   5.132 +  \else
   5.133 +    % all other drafts get the standard draft footer
   5.134 +    \gdef\@evenfoot{\textbf{Draft:} \@draftdate\hfil \textbf{Page:} \thepage}%
   5.135 +  \fi
   5.136 +  \gdef\@oddfoot{\@evenfoot}%
   5.137 +}
   5.138 +
   5.139 +%
   5.140 +% Usenix wants no page numbers for submitted papers, so that
   5.141 +% they can number them themselves.  Drafts should have
   5.142 +% numbered pages, so they can be edited.
   5.143 +% 
   5.144 +\if@draftcopy
   5.145 +  % Compute a date and time for the draft for use
   5.146 +  % either in \@setfoot (proof) or in \maketitle (workingdraft)
   5.147 +  %
   5.148 +  % Time code adapted from custom-bib/makebst.tex
   5.149 +  % Copyright 1993-1999 Patrick W Daly
   5.150 +  % Max-Planck-Institut f\"ur Aeronomie
   5.151 +  % E-mail: daly@linmp.mpg.de
   5.152 +  \newcount\hour
   5.153 +  \hour=\time
   5.154 +  \divide\hour by 60
   5.155 +  \newcount\minute
   5.156 +  \minute=\hour
   5.157 +  \multiply\minute by 60
   5.158 +  \advance\minute by -\time
   5.159 +  \multiply\minute by -1
   5.160 +  \newcommand{\@draftdate}
   5.161 +    {{\the\year/\/\two@digits{\the\month}/\/\two@digits{\the\day}%
   5.162 +          ~\two@digits{\the\hour}:\two@digits{\the\minute}}}
   5.163 +  \pagestyle{plain}
   5.164 +  \@setfoot
   5.165 +\else
   5.166 +  \pagestyle{empty}
   5.167 +\fi
   5.168 +
   5.169 +% Times-Roman font is nice if you can get it (requires NFSS,
   5.170 +% which is in latex2e).
   5.171 +\usepackage{times}
   5.172 +
   5.173 +% endnote support, as described at
   5.174 +%   http://www.lyx.org/help/footnotes.php
   5.175 +\ifhasendnotes
   5.176 +  \typeout
   5.177 +    {Warning: endnotes support is deprecated (see documentation for details)}
   5.178 +  \let\footnote=\endnote
   5.179 +  \def\enoteformat{\rightskip\z@ \leftskip\z@
   5.180 +       \parindent=0pt\parskip=\baselineskip
   5.181 +       \@theenmark. }
   5.182 +  \newcommand{\makeendnotes}{
   5.183 +    \begingroup
   5.184 +    \def\enotesize{\normalsize}
   5.185 +    \theendnotes
   5.186 +    \endgroup
   5.187 +  }
   5.188 +\else
   5.189 +  \long\gdef\footnote{\@latex@error
   5.190 +    {Deprecated footnote command (see documentation for details)}}
   5.191 +  \long\gdef\endnote{\@latex@error
   5.192 +    {Deprecated endnote command (see documentation for details)}}
   5.193 +\fi
   5.194 +
   5.195 +%
   5.196 +% Usenix margins 
   5.197 +% Gives active areas of 6.45" x 9.0"
   5.198 +%
   5.199 +\setlength{\textheight}{9.0in}
   5.200 +\setlength{\columnsep}{0.25in}
   5.201 +\setlength{\textwidth}{6.45in}
   5.202 +%\setlength{\footskip}{0.0in}
   5.203 +%\setlength{\footheight}{0.0in}
   5.204 +\setlength{\topmargin}{0.0in}
   5.205 +\setlength{\headheight}{0.0in}
   5.206 +\setlength{\headsep}{0.0in}
   5.207 +\setlength{\evensidemargin}{0.0in}
   5.208 +\setlength{\oddsidemargin}{0.0in}
   5.209 +\setlength{\marginparsep}{1.5em}
   5.210 +\setlength{\marginparwidth}{0.35in}
   5.211 +
   5.212 +% The standard maketitle insists on
   5.213 +% messing with the style of the first page.
   5.214 +% Thus, we will wrap maketitle with code to put
   5.215 +% things right again.
   5.216 +\let \save@maketitle=\maketitle
   5.217 +\def\maketitle{
   5.218 +  \save@maketitle
   5.219 +  \if@draftcopy
   5.220 +    \@specialpagefalse
   5.221 +  \else
   5.222 +    \thispagestyle{empty}
   5.223 +  \fi
   5.224 +}
   5.225 +
   5.226 +%
   5.227 +% Usenix titles are in 14-point bold type, with no date, and with no
   5.228 +% change in the empty page headers.  The author section is
   5.229 +% 12 point roman and italic: see below.
   5.230 +%
   5.231 +\def\@maketitle{%
   5.232 +  \newpage
   5.233 +  \null
   5.234 +%  \vskip 3ex%
   5.235 +  \begin{center}%
   5.236 +%  \let \footnote \thanks
   5.237 +  {\Large \bf \@title \par}%            % use 14 pt bold
   5.238 +%  \vskip 2ex%
   5.239 +  {\large
   5.240 +%    \lineskip .5ex%
   5.241 +%    \begin{tabular}[t]{c}%
   5.242 +%      \@author
   5.243 +%    \end{tabular}\par
   5.244 +  }%
   5.245 +  \ifworkingdraft
   5.246 +    \vskip 0.5ex
   5.247 +    \textbf{Draft of \@draftdate}
   5.248 +    \vskip 0.5ex
   5.249 +  \fi
   5.250 +  \ifwebversion
   5.251 +    \vskip 0.5ex
   5.252 +    \textit{Authors and affiliation elided for review.}
   5.253 +    \vskip 0.5ex
   5.254 +  \fi
   5.255 +  \end{center}%
   5.256 +  \par
   5.257 +%  \vskip 2ex
   5.258 +}
   5.259 +
   5.260 +%
   5.261 +% The author section
   5.262 +% should have names in Roman, address in
   5.263 +% italic, e-mail/http in typewriter.
   5.264 +% This is enforced by use of these macros
   5.265 +%
   5.266 +\def\authname#1{{#1}\\}
   5.267 +\def\authaddr#1{\itshape{#1}\\}
   5.268 +\def\authurl#1{{\normalsize #1}\\}
   5.269 +
   5.270 +%
   5.271 +% The abstract is preceded by a 12-pt bold centered heading
   5.272 +%
   5.273 +\def\abstract{\begin{center}%
   5.274 +  {\large\bf \abstractname\vspace{-.5ex}\vspace{\z@}}%
   5.275 +  \end{center}}
   5.276 +\def\endabstract{}
   5.277 +
   5.278 +%
   5.279 +% Main section titles are 12-pt bold.  Lower divisions can
   5.280 +% be same size or smaller: we choose same.
   5.281 +% Main section leading is tight.  Subsection leading is even
   5.282 +% slightly tighter.  All lower divisions are formatted like subsections.
   5.283 +% 
   5.284 +\newcommand\@sectionfont{\reset@font\large\bf}
   5.285 +\newlength\@sectionaboveskip
   5.286 +\setlength\@sectionaboveskip{-0.7\baselineskip
   5.287 +  plus -0.1\baselineskip
   5.288 +  minus -0.1\baselineskip}
   5.289 +\newlength\@sectionbelowskip
   5.290 +\setlength\@sectionbelowskip{0.3\baselineskip
   5.291 +  plus 0.1\baselineskip}
   5.292 +\newlength\@subsectionaboveskip
   5.293 +\setlength\@subsectionaboveskip{-0.5\baselineskip
   5.294 +  plus -0.1\baselineskip}
   5.295 +\renewcommand\section{\@startsection {section}{1}{\z@}%
   5.296 +    {\@sectionaboveskip}{\@sectionbelowskip}{\@sectionfont}}
   5.297 +\newcommand\@gensubsection[2]{\@startsection {#1}{#2}{\z@}%
   5.298 +    {\@subsectionaboveskip}{\@sectionbelowskip}{\@sectionfont}}
   5.299 +\renewcommand\subsection{\@gensubsection{subsection}{2}}
   5.300 +\renewcommand\subsubsection{\@gensubsection{subsubsection}{3}}
   5.301 +%\renewcommand\paragraph{\@gensubsection{paragraph}{4}}
   5.302 +%\renewcommand\subparagraph{\@gensubsection{subparagaph}{5}}
   5.303 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
   5.304 +                                    {1.25ex \@plus 0.2ex \@minus 0.2ex}%
   5.305 +                                    {-1.0em}%
   5.306 +                                    {\normalfont\normalsize\bfseries}}
   5.307 +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
   5.308 +                                    {1.25ex \@plus 0.2ex \@minus 0.2ex}%
   5.309 +                                    {-1.0em}%
   5.310 +                                    {\normalfont\normalsize\bfseries}}
   5.311 +
   5.312 +% List items need to be tightened up.
   5.313 +% There must be a better way than copying
   5.314 +% the definitions to modify the list environment...
   5.315 +\def\@itemspacings{\listparindent=\parindent
   5.316 +  \parsep=0pt\topsep=0.3\baselineskip\partopsep=0pt\itemsep=0pt}
   5.317 +% now make envs use itemspacings
   5.318 +\def\itemize{%
   5.319 +  \ifnum \@itemdepth >\thr@@\@toodeep\else
   5.320 +    \advance\@itemdepth\@ne
   5.321 +    \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
   5.322 +    \expandafter
   5.323 +    \list
   5.324 +      \csname\@itemitem\endcsname
   5.325 +      {\@itemspacings\def\makelabel##1{\hss\llap{##1}}}%
   5.326 +  \fi}
   5.327 +\def\enumerate{%
   5.328 +  \ifnum \@enumdepth >\thr@@\@toodeep\else
   5.329 +    \advance\@enumdepth\@ne
   5.330 +    \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
   5.331 +      \expandafter
   5.332 +      \list
   5.333 +        \csname label\@enumctr\endcsname
   5.334 +        {\@itemspacings\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
   5.335 +  \fi}
   5.336 +\def\description{%
   5.337 +  \list{}{\labelwidth\z@ \itemindent-\leftmargin
   5.338 +          \@itemspacings\let\makelabel\descriptionlabel}}
   5.339 +
   5.340 +% Bibliography items need to be tightened up.
   5.341 +% Again, there must be a better way than copying
   5.342 +% the definitions to modify the list environment...
   5.343 +\def\thebibliography#1%
   5.344 +     {\section*{\refname}%
   5.345 +      \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
   5.346 +      \list{\@biblabel{\@arabic\c@enumiv}}%
   5.347 +           {\settowidth\labelwidth{\@biblabel{#1}}%
   5.348 +            \leftmargin\labelwidth
   5.349 +            \advance\leftmargin\labelsep
   5.350 +            \@openbib@code
   5.351 +            \usecounter{enumiv}%
   5.352 +            \let\p@enumiv\@empty
   5.353 +            \renewcommand\theenumiv{\@arabic\c@enumiv}%
   5.354 +            \parsep=0pt}% pack entries
   5.355 +      \sloppy
   5.356 +      \hbadness=8000% mostly don't whine about bibliography fmt
   5.357 +      \clubpenalty=4000%
   5.358 +      \@clubpenalty=\clubpenalty
   5.359 +      \widowpenalty=4000%
   5.360 +      \sfcode`\.\@m}
   5.361 +
   5.362 +% Floating bodies need to be tightened up.
   5.363 +\setlength\textfloatsep{14pt plus 2pt}
   5.364 +\setlength\dbltextfloatsep{\textfloatsep}
   5.365 +\setlength\intextsep{0.8\textfloatsep}
   5.366 +\setlength\abovecaptionskip{8pt minus 2pt}
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/0__Papers/VMS/VMS__Foundation_Paper/HotPar_2012/helpers/usetex-v1.cls	Thu Feb 02 12:22:53 2012 -0800
     6.3 @@ -0,0 +1,357 @@
     6.4 +\NeedsTeXFormat{LaTeX2e}
     6.5 +\ProvidesClass{usetex-v1}[2002/10/31 v1.2 usetex Usenix article class]
     6.6 +
     6.7 +% usetex-v1.cls - to be used with LaTeX2e for Usenix articles
     6.8 +%
     6.9 +% To use this style file, do this:
    6.10 +%
    6.11 +%    \documentclass{usetex-v1}
    6.12 +%
    6.13 +% The following definitions are modifications of standard article.cls
    6.14 +% definitions, arranged to do a better job of matching the Usenix
    6.15 +% guidelines. and make for convenient Usenix paper writing
    6.16 +%
    6.17 +% Choose the appropriate option:
    6.18 +%
    6.19 +% 1. workingdraft:
    6.20 +%
    6.21 +%       For initial submission and shepherding.  Features prominent
    6.22 +%       date, notice of draft status, page numbers, and annotation
    6.23 +%       facilities.
    6.24 +%
    6.25 +% 2. proof:
    6.26 +%
    6.27 +%         A galley proof identical to the final copy except for page
    6.28 +%         numbering and proof date on the bottom.  Annotations are
    6.29 +%         removed.
    6.30 +%
    6.31 +% 3. webversion:
    6.32 +%
    6.33 +%       A web-publishable version, uses \docstatus{} to indicate
    6.34 +%       publication information (where and when paper was published),
    6.35 +%       and page numbers.
    6.36 +%
    6.37 +% 4. finalversion:
    6.38 +%
    6.39 +%       The final camera-ready-copy (CRC) version of the paper.
    6.40 +%       Published in conference proceedings.  This doesn't include
    6.41 +%       page numbers, annotations, or draft status (Usenix adds
    6.42 +%       headers, footers, and page numbers onto the CRC).
    6.43 +%
    6.44 +% If several are used, the last one in this list wins
    6.45 +%
    6.46 +
    6.47 +%
    6.48 +% In addition, the option "endnotes" permits the use of the
    6.49 +% otherwise-disabled, Usenix-deprecated footnote{} command in
    6.50 +% documents.  In this case, be sure to include a
    6.51 +% \makeendnotes command at the end of your document or
    6.52 +% the endnotes will not actually appear.
    6.53 +%
    6.54 +
    6.55 +\newif\if@draftcopy \newif\ifworkingdraft
    6.56 +\DeclareOption{workingdraft}{\workingdrafttrue\@draftcopytrue}
    6.57 +\newif\ifproof \DeclareOption{proof}{\prooftrue\@draftcopytrue}
    6.58 +\newif\ifwebversion
    6.59 +\DeclareOption{webversion}{\prooftrue\webversiontrue\@draftcopytrue}
    6.60 +\DeclareOption{finalversion}{}
    6.61 +\newif\ifhasendnotes
    6.62 +\DeclareOption{endnotes}{\hasendnotestrue}
    6.63 +
    6.64 +% pass all other options to the article class
    6.65 +\DeclareOption*{%
    6.66 +  \PassOptionsToClass{\CurrentOption}{article}%
    6.67 +}
    6.68 +
    6.69 +% actually process the options
    6.70 +\ProcessOptions
    6.71 +
    6.72 +% usetex is based on article
    6.73 +\LoadClass[twocolumn]{article}
    6.74 +
    6.75 +% Footnotes are not currently allowed, but
    6.76 +% endnotes (while a bad idea) are.
    6.77 +\ifhasendnotes
    6.78 +  \RequirePackage{endnotes}
    6.79 +\fi
    6.80 +
    6.81 +% save any provided document status information
    6.82 +\def\@docstatus{}
    6.83 +\def\docstatus#1{\gdef\@docstatus{#1}}
    6.84 +
    6.85 +\ifworkingdraft
    6.86 +
    6.87 +  % formatting helper for draft notes
    6.88 +  \newcommand{\@noteleader[1]}{%
    6.89 +    {\marginpar{\framebox{\scriptsize\textbf{#1}}}}%
    6.90 +    \bfseries\itshape
    6.91 +  }
    6.92 +
    6.93 +  % put a small anonymous editing note in the draft copy
    6.94 +  \newcommand{\edannote}[1]{{\@noteleader[note] (#1)}}
    6.95 +
    6.96 +  % put a small attributed editing note in the draft copy
    6.97 +  \newcommand{\edatnote}[2]{{\@noteleader[#1] #2}}
    6.98 +
    6.99 +  % put an attributed editing note paragraph in the draft copy
   6.100 +  \newenvironment{ednote}[1]
   6.101 +    {\newcommand{\who}{#1}\@noteleader[\who]}
   6.102 +
   6.103 +  % mark a spot where work has been left off for later
   6.104 +  \newcommand{\HERE}{%
   6.105 +    {\mbox{}\marginpar{\framebox{\textbf{here}}}}{\bf\ldots}}
   6.106 +
   6.107 +\else
   6.108 +
   6.109 +  % dummy versions of editing commands to produce warnings
   6.110 +
   6.111 +  \newcommand{\edannote}[1]{\@latex@warning
   6.112 +    {Leftover edannote command in final version ignored}}
   6.113 +
   6.114 +  \newcommand{\edatnote}[1]{\@latex@warning
   6.115 +    {Leftover edatnote command in final version ignored}}
   6.116 +
   6.117 +  \newsavebox{\@discard}
   6.118 +  \newenvironment{ednote}[1]{\@latex@warning
   6.119 +    {Leftover ednote environment in final version ignored}%
   6.120 +    \begin{lrbox}{\@discard}}{\end{lrbox}}
   6.121 +
   6.122 +  \newcommand{\HERE}{\@latex@warning
   6.123 +    {Leftover HERE command in final version ignored}}
   6.124 +
   6.125 +\fi
   6.126 +
   6.127 +% set up the footers appropriately
   6.128 +\def\@setfoot{%
   6.129 +  \ifwebversion
   6.130 +    % webversions get whatever status the author says
   6.131 +    \gdef\@evenfoot{\@docstatus \hfil \thepage}%
   6.132 +  \else
   6.133 +    % all other drafts get the standard draft footer
   6.134 +    \gdef\@evenfoot{\textbf{Draft:} \@draftdate\hfil \textbf{Page:} \thepage}%
   6.135 +  \fi
   6.136 +  \gdef\@oddfoot{\@evenfoot}%
   6.137 +}
   6.138 +
   6.139 +%
   6.140 +% Usenix wants no page numbers for submitted papers, so that
   6.141 +% they can number them themselves.  Drafts should have
   6.142 +% numbered pages, so they can be edited.
   6.143 +% 
   6.144 +\if@draftcopy
   6.145 +  % Compute a date and time for the draft for use
   6.146 +  % either in \@setfoot (proof) or in \maketitle (workingdraft)
   6.147 +  %
   6.148 +  % Time code adapted from custom-bib/makebst.tex
   6.149 +  % Copyright 1993-1999 Patrick W Daly
   6.150 +  % Max-Planck-Institut f\"ur Aeronomie
   6.151 +  % E-mail: daly@linmp.mpg.de
   6.152 +  \newcount\hour
   6.153 +  \hour=\time
   6.154 +  \divide\hour by 60
   6.155 +  \newcount\minute
   6.156 +  \minute=\hour
   6.157 +  \multiply\minute by 60
   6.158 +  \advance\minute by -\time
   6.159 +  \multiply\minute by -1
   6.160 +  \newcommand{\@draftdate}
   6.161 +    {{\the\year/\/\two@digits{\the\month}/\/\two@digits{\the\day}%
   6.162 +          ~\two@digits{\the\hour}:\two@digits{\the\minute}}}
   6.163 +  \pagestyle{plain}
   6.164 +  \@setfoot
   6.165 +\else
   6.166 +  \pagestyle{empty}
   6.167 +\fi
   6.168 +
   6.169 +% Times-Roman font is nice if you can get it (requires NFSS,
   6.170 +% which is in latex2e).
   6.171 +\usepackage{times}
   6.172 +
   6.173 +% endnote support, as described at
   6.174 +%   http://www.lyx.org/help/footnotes.php
   6.175 +\ifhasendnotes
   6.176 +  \typeout
   6.177 +    {Warning: endnotes support is deprecated (see documentation for details)}
   6.178 +  \let\footnote=\endnote
   6.179 +  \def\enoteformat{\rightskip\z@ \leftskip\z@
   6.180 +       \parindent=0pt\parskip=\baselineskip
   6.181 +       \@theenmark. }
   6.182 +  \newcommand{\makeendnotes}{
   6.183 +    \begingroup
   6.184 +    \def\enotesize{\normalsize}
   6.185 +    \theendnotes
   6.186 +    \endgroup
   6.187 +  }
   6.188 +\else
   6.189 +  \long\gdef\footnote{\@latex@error
   6.190 +    {Deprecated footnote command (see documentation for details)}}
   6.191 +  \long\gdef\endnote{\@latex@error
   6.192 +    {Deprecated endnote command (see documentation for details)}}
   6.193 +\fi
   6.194 +
   6.195 +%
   6.196 +% Usenix margins 
   6.197 +% Gives active areas of 6.45" x 9.0"
   6.198 +%
   6.199 +\setlength{\textheight}{9.0in}
   6.200 +\setlength{\columnsep}{0.25in}
   6.201 +\setlength{\textwidth}{6.45in}
   6.202 +%\setlength{\footskip}{0.0in}
   6.203 +%\setlength{\footheight}{0.0in}
   6.204 +\setlength{\topmargin}{0.0in}
   6.205 +\setlength{\headheight}{0.0in}
   6.206 +\setlength{\headsep}{0.0in}
   6.207 +\setlength{\evensidemargin}{0.0in}
   6.208 +\setlength{\oddsidemargin}{0.0in}
   6.209 +\setlength{\marginparsep}{1.5em}
   6.210 +\setlength{\marginparwidth}{0.35in}
   6.211 +
   6.212 +% The standard maketitle insists on
   6.213 +% messing with the style of the first page.
   6.214 +% Thus, we will wrap maketitle with code to put
   6.215 +% things right again.
   6.216 +\let \save@maketitle=\maketitle
   6.217 +\def\maketitle{
   6.218 +  \save@maketitle
   6.219 +  \if@draftcopy
   6.220 +    \@specialpagefalse
   6.221 +  \else
   6.222 +    \thispagestyle{empty}
   6.223 +  \fi
   6.224 +}
   6.225 +
   6.226 +%
   6.227 +% Usenix titles are in 14-point bold type, with no date, and with no
   6.228 +% change in the empty page headers.  The author section is
   6.229 +% 12 point roman and italic: see below.
   6.230 +%
   6.231 +\def\@maketitle{%
   6.232 +  \newpage
   6.233 +  \null
   6.234 +  \vskip 3ex%
   6.235 +  \begin{center}%
   6.236 +  \let \footnote \thanks
   6.237 +  {\Large \bf \@title \par}%            % use 14 pt bold
   6.238 +  \vskip 2ex%
   6.239 +  {\large
   6.240 +    \lineskip .5ex%
   6.241 +    \begin{tabular}[t]{c}%
   6.242 +      \@author
   6.243 +    \end{tabular}\par}%
   6.244 +  \ifworkingdraft
   6.245 +    \vskip 3ex \textbf{Draft of \@draftdate} \vskip 3ex
   6.246 +  \fi
   6.247 +  \ifwebversion
   6.248 +    \vskip 3ex \textbf{\@docstatus} \vskip 3ex
   6.249 +  \fi
   6.250 +  \end{center}%
   6.251 +  \par
   6.252 +  \vskip 2ex}
   6.253 +
   6.254 +%
   6.255 +% The author section
   6.256 +% should have names in Roman, address in
   6.257 +% italic, e-mail/http in typewriter.
   6.258 +% This is enforced by use of these macros
   6.259 +%
   6.260 +\def\authname#1{{#1}\\}
   6.261 +\def\authaddr#1{\itshape{#1}\\}
   6.262 +\def\authurl#1{{\normalsize #1}\\}
   6.263 +
   6.264 +%
   6.265 +% The abstract is preceded by a 12-pt bold centered heading
   6.266 +%
   6.267 +\def\abstract{\begin{center}%
   6.268 +  {\large\bf \abstractname\vspace{-.5ex}\vspace{\z@}}%
   6.269 +  \end{center}}
   6.270 +\def\endabstract{}
   6.271 +
   6.272 +%
   6.273 +% Main section titles are 12-pt bold.  Lower divisions can
   6.274 +% be same size or smaller: we choose same.
   6.275 +% Main section leading is tight.  Subsection leading is even
   6.276 +% slightly tighter.  All lower divisions are formatted like subsections.
   6.277 +% 
   6.278 +\newcommand\@sectionfont{\reset@font\large\bf}
   6.279 +\newlength\@sectionaboveskip
   6.280 +\setlength\@sectionaboveskip{-0.7\baselineskip
   6.281 +  plus -0.1\baselineskip
   6.282 +  minus -0.1\baselineskip}
   6.283 +\newlength\@sectionbelowskip
   6.284 +\setlength\@sectionbelowskip{0.3\baselineskip
   6.285 +  plus 0.1\baselineskip}
   6.286 +\newlength\@subsectionaboveskip
   6.287 +\setlength\@subsectionaboveskip{-0.5\baselineskip
   6.288 +  plus -0.1\baselineskip}
   6.289 +\renewcommand\section{\@startsection {section}{1}{\z@}%
   6.290 +    {\@sectionaboveskip}{\@sectionbelowskip}{\@sectionfont}}
   6.291 +\newcommand\@gensubsection[2]{\@startsection {#1}{#2}{\z@}%
   6.292 +    {\@subsectionaboveskip}{\@sectionbelowskip}{\@sectionfont}}
   6.293 +\renewcommand\subsection{\@gensubsection{subsection}{2}}
   6.294 +\renewcommand\subsubsection{\@gensubsection{subsubsection}{3}}
   6.295 +%\renewcommand\paragraph{\@gensubsection{paragraph}{4}}
   6.296 +%\renewcommand\subparagraph{\@gensubsection{subparagaph}{5}}
   6.297 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
   6.298 +                                    {1.25ex \@plus 0.2ex \@minus 0.2ex}%
   6.299 +                                    {-1.0em}%
   6.300 +                                    {\normalfont\normalsize\bfseries}}
   6.301 +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
   6.302 +                                    {1.25ex \@plus 0.2ex \@minus 0.2ex}%
   6.303 +                                    {-1.0em}%
   6.304 +                                    {\normalfont\normalsize\bfseries}}
   6.305 +
   6.306 +% List items need to be tightened up.
   6.307 +% There must be a better way than copying
   6.308 +% the definitions to modify the list environment...
   6.309 +\def\@itemspacings{\listparindent=\parindent
   6.310 +  \parsep=0pt\topsep=0.3\baselineskip\partopsep=0pt\itemsep=0pt}
   6.311 +% now make envs use itemspacings
   6.312 +\def\itemize{%
   6.313 +  \ifnum \@itemdepth >\thr@@\@toodeep\else
   6.314 +    \advance\@itemdepth\@ne
   6.315 +    \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
   6.316 +    \expandafter
   6.317 +    \list
   6.318 +      \csname\@itemitem\endcsname
   6.319 +      {\@itemspacings\def\makelabel##1{\hss\llap{##1}}}%
   6.320 +  \fi}
   6.321 +\def\enumerate{%
   6.322 +  \ifnum \@enumdepth >\thr@@\@toodeep\else
   6.323 +    \advance\@enumdepth\@ne
   6.324 +    \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
   6.325 +      \expandafter
   6.326 +      \list
   6.327 +        \csname label\@enumctr\endcsname
   6.328 +        {\@itemspacings\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
   6.329 +  \fi}
   6.330 +\def\description{%
   6.331 +  \list{}{\labelwidth\z@ \itemindent-\leftmargin
   6.332 +          \@itemspacings\let\makelabel\descriptionlabel}}
   6.333 +
   6.334 +% Bibliography items need to be tightened up.
   6.335 +% Again, there must be a better way than copying
   6.336 +% the definitions to modify the list environment...
   6.337 +\def\thebibliography#1%
   6.338 +     {\section*{\refname}%
   6.339 +      \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
   6.340 +      \list{\@biblabel{\@arabic\c@enumiv}}%
   6.341 +           {\settowidth\labelwidth{\@biblabel{#1}}%
   6.342 +            \leftmargin\labelwidth
   6.343 +            \advance\leftmargin\labelsep
   6.344 +            \@openbib@code
   6.345 +            \usecounter{enumiv}%
   6.346 +            \let\p@enumiv\@empty
   6.347 +            \renewcommand\theenumiv{\@arabic\c@enumiv}%
   6.348 +            \parsep=0pt}% pack entries
   6.349 +      \sloppy
   6.350 +      \hbadness=8000% mostly don't whine about bibliography fmt
   6.351 +      \clubpenalty=4000%
   6.352 +      \@clubpenalty=\clubpenalty
   6.353 +      \widowpenalty=4000%
   6.354 +      \sfcode`\.\@m}
   6.355 +
   6.356 +% Floating bodies need to be tightened up.
   6.357 +\setlength\textfloatsep{14pt plus 2pt}
   6.358 +\setlength\dbltextfloatsep{\textfloatsep}
   6.359 +\setlength\intextsep{0.8\textfloatsep}
   6.360 +\setlength\abovecaptionskip{8pt minus 2pt}