blob: 198e1eaacaf9023ca76483ea7e3938ce149cd72c [file] [log] [blame]
<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body lang="en-GB">
%
<p align="right"><em>%A printer friendly PDF version of this page is
available <ahref="index.pdf"><a href="abbrv.pdf">abbrv.pdf (36Kb)</a></em></p>
<h1>BibTeX standard bibliography style `abbrv'</h1>
<dl>
<dt style="color: #0000B2; background-color: #C0C0C0">% version 0.99a for
BibTeX versions 0.99a or later, LaTeX version 2.09.</dt>
<dt style="color: #0000B2; background-color: #C0C0C0">% Copyright (C) 1985,
all rights reserved.</dt>
<dt style="color: #0000B2; background-color: #C0C0C0">% Copying of this
file is authorized only if either</dt>
<dt style="color: #0000B2; background-color: #C0C0C0">% (1) you make
absolutely no changes to your copy, including name, or</dt>
<dt style="color: #0000B2; background-color: #C0C0C0">% (2) if you do make
changes, you name it something other than</dt>
<dt style="color: #0000B2; background-color: #C0C0C0">% btxbst.doc,
plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.</dt>
<dt style="color: #0000B2; background-color: #C0C0C0">% This restriction
helps ensure that all standard styles are identical.</dt>
<dt style="color: #0000B2; background-color: #C0C0C0"><span
style="color: #0000B2">% The file btxbst.doc has the documentation for this
style.</span></dt>
<dt><br>
</dt>
<dt>ENTRY</dt>
<dt>{ address</dt>
<dt>author</dt>
<dt>booktitle</dt>
<dt>chapter</dt>
<dt>edition</dt>
<dt>editor</dt>
<dt>howpublished</dt>
<dt>institution</dt>
<dt>journal</dt>
<dt>key</dt>
<dt>month</dt>
<dt>note</dt>
<dt>number</dt>
<dt>organization</dt>
<dt>pages</dt>
<dt>publisher</dt>
<dt>school</dt>
<dt>series</dt>
<dt>title</dt>
<dt>type</dt>
<dt>volume</dt>
<dt>year</dt>
<dt>}</dt>
<dt>{}</dt>
<dt>{ label }</dt>
<dt><br>
</dt>
<dt>INTEGERS { output.state before.all mid.sentence after.sentence
after.block }</dt>
<dt><br>
</dt>
<dt>FUNCTION {init.state.consts}</dt>
<dt>{ #0 'before.all :=</dt>
<dt>#1 'mid.sentence :=</dt>
<dt>#2 'after.sentence :=</dt>
<dt>#3 'after.block :=</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>STRINGS { s t }</dt>
<dt><br>
</dt>
<dt>FUNCTION {output.nonnull}</dt>
<dt>{ 's :=</dt>
<dt>output.state mid.sentence =</dt>
<dt>{ ", " * write$ }</dt>
<dt>{ output.state after.block =</dt>
<dt>{ add.period$ write$</dt>
<dt>newline$</dt>
<dt>"\newblock " write$</dt>
<dt>}</dt>
<dt>{ output.state before.all =</dt>
<dt>'write$</dt>
<dt>{ add.period$ " " * write$ }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>mid.sentence 'output.state :=</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>s</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {output}</dt>
<dt>{ duplicate$ empty$</dt>
<dt>'pop$</dt>
<dt>'output.nonnull</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {output.check}</dt>
<dt>{ 't :=</dt>
<dt>duplicate$ empty$</dt>
<dt>{ pop$ "empty " t * " in " * cite$ * warning$ }</dt>
<dt>'output.nonnull</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {output.bibitem}</dt>
<dt>{ newline$</dt>
<dt>"\bibitem{" write$</dt>
<dt>cite$ write$</dt>
<dt>"}" write$</dt>
<dt>newline$</dt>
<dt>""</dt>
<dt>before.all 'output.state :=</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {fin.entry}</dt>
<dt>{ add.period$</dt>
<dt>write$</dt>
<dt>newline$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {new.block}</dt>
<dt>{ output.state before.all =</dt>
<dt>'skip$</dt>
<dt>{ after.block 'output.state := }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {new.sentence}</dt>
<dt>{ output.state after.block =</dt>
<dt>'skip$</dt>
<dt>{ output.state before.all =</dt>
<dt>'skip$</dt>
<dt>{ after.sentence 'output.state := }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {not}</dt>
<dt>{ { #0 }</dt>
<dt>{ #1 }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {and}</dt>
<dt>{ 'skip$</dt>
<dt>{ pop$ #0 }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {or}</dt>
<dt>{ { pop$ #1 }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {new.block.checka}</dt>
<dt>{ empty$</dt>
<dt>'skip$</dt>
<dt>'new.block</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {new.block.checkb}</dt>
<dt>{ empty$</dt>
<dt>swap$ empty$</dt>
<dt>and</dt>
<dt>'skip$</dt>
<dt>'new.block</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {new.sentence.checka}</dt>
<dt>{ empty$</dt>
<dt>'skip$</dt>
<dt>'new.sentence</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {new.sentence.checkb}</dt>
<dt>{ empty$</dt>
<dt>swap$ empty$</dt>
<dt>and</dt>
<dt>'skip$</dt>
<dt>'new.sentence</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {field.or.null}</dt>
<dt>{ duplicate$ empty$</dt>
<dt>{ pop$ "" }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {emphasize}</dt>
<dt>{ duplicate$ empty$</dt>
<dt>{ pop$ "" }</dt>
<dt>{ "{\em " swap$ * "}" * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>INTEGERS { nameptr namesleft numnames }</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.names}</dt>
<dt>{ 's :=</dt>
<dt>#1 'nameptr :=</dt>
<dt>s num.names$ 'numnames :=</dt>
<dt>numnames 'namesleft :=</dt>
<dt>{ namesleft #0 &gt; }</dt>
<dt>{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=</dt>
<dt>nameptr #1 &gt;</dt>
<dt>{ namesleft #1 &gt;</dt>
<dt>{ ", " * t * }</dt>
<dt>{ numnames #2 &gt;</dt>
<dt>{ "," * }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>t "others" =</dt>
<dt>{ " et~al." * }</dt>
<dt>{ " and " * t * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>'t</dt>
<dt>if$</dt>
<dt>nameptr #1 + 'nameptr :=</dt>
<dt>namesleft #1 - 'namesleft :=</dt>
<dt>}</dt>
<dt>while$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.authors}</dt>
<dt>{ author empty$</dt>
<dt>{ "" }</dt>
<dt>{ author format.names }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.editors}</dt>
<dt>{ editor empty$</dt>
<dt>{ "" }</dt>
<dt>{ editor format.names</dt>
<dt>editor num.names$ #1 &gt;</dt>
<dt>{ ", editors" * }</dt>
<dt>{ ", editor" * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.title}</dt>
<dt>{ title empty$</dt>
<dt>{ "" }</dt>
<dt>{ title "t" change.case$ }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {n.dashify}</dt>
<dt>{ 't :=</dt>
<dt>""</dt>
<dt>{ t empty$ not }</dt>
<dt>{ t #1 #1 substring$ "-" =</dt>
<dt>{ t #1 #2 substring$ "--" = not</dt>
<dt>{ "--" *</dt>
<dt>t #2 global.max$ substring$ 't :=</dt>
<dt>}</dt>
<dt>{ { t #1 #1 substring$ "-" = }</dt>
<dt>{ "-" *</dt>
<dt>t #2 global.max$ substring$ 't :=</dt>
<dt>}</dt>
<dt>while$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ t #1 #1 substring$ *</dt>
<dt>t #2 global.max$ substring$ 't :=</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>while$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.date}</dt>
<dt>{ year empty$</dt>
<dt>{ month empty$</dt>
<dt>{ "" }</dt>
<dt>{ "there's a month but no year in " cite$ * warning$</dt>
<dt>month</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ month empty$</dt>
<dt>'year</dt>
<dt>{ month " " * year * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.btitle}</dt>
<dt>{ title emphasize</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {tie.or.space.connect}</dt>
<dt>{ duplicate$ text.length$ #3 &lt;</dt>
<dt>{ "~" }</dt>
<dt>{ " " }</dt>
<dt>if$</dt>
<dt>swap$ * *</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {either.or.check}</dt>
<dt>{ empty$</dt>
<dt>'pop$</dt>
<dt>{ "can't use both " swap$ * " fields in " * cite$ * warning$ }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.bvolume}</dt>
<dt>{ volume empty$</dt>
<dt>{ "" }</dt>
<dt>{ "volume" volume tie.or.space.connect</dt>
<dt>series empty$</dt>
<dt>'skip$</dt>
<dt>{ " of " * series emphasize * }</dt>
<dt>if$</dt>
<dt>"volume and number" number either.or.check</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.number.series}</dt>
<dt>{ volume empty$</dt>
<dt>{ number empty$</dt>
<dt>{ series field.or.null }</dt>
<dt>{ output.state mid.sentence =</dt>
<dt>{ "number" }</dt>
<dt>{ "Number" }</dt>
<dt>if$</dt>
<dt>number tie.or.space.connect</dt>
<dt>series empty$</dt>
<dt>{ "there's a number but no series in " cite$ * warning$ }</dt>
<dt>{ " in " * series * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ "" }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.edition}</dt>
<dt>{ edition empty$</dt>
<dt>{ "" }</dt>
<dt>{ output.state mid.sentence =</dt>
<dt>{ edition "l" change.case$ " edition" * }</dt>
<dt>{ edition "t" change.case$ " edition" * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>INTEGERS { multiresult }</dt>
<dt><br>
</dt>
<dt>FUNCTION {multi.page.check}</dt>
<dt>{ 't :=</dt>
<dt>#0 'multiresult :=</dt>
<dt>{ multiresult not</dt>
<dt>t empty$ not</dt>
<dt>and</dt>
<dt>}</dt>
<dt>{ t #1 #1 substring$</dt>
<dt>duplicate$ "-" =</dt>
<dt>swap$ duplicate$ "," =</dt>
<dt>swap$ "+" =</dt>
<dt>or or</dt>
<dt>{ #1 'multiresult := }</dt>
<dt>{ t #2 global.max$ substring$ 't := }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>while$</dt>
<dt>multiresult</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.pages}</dt>
<dt>{ pages empty$</dt>
<dt>{ "" }</dt>
<dt>{ pages multi.page.check</dt>
<dt>{ "pages" pages n.dashify tie.or.space.connect }</dt>
<dt>{ "page" pages tie.or.space.connect }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.vol.num.pages}</dt>
<dt>{ volume field.or.null</dt>
<dt>number empty$</dt>
<dt>'skip$</dt>
<dt>{ "(" number * ")" * *</dt>
<dt>volume empty$</dt>
<dt>{ "there's a number but no volume in " cite$ * warning$ }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>pages empty$</dt>
<dt>'skip$</dt>
<dt>{ duplicate$ empty$</dt>
<dt>{ pop$ format.pages }</dt>
<dt>{ ":" * pages n.dashify * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.chapter.pages}</dt>
<dt>{ chapter empty$</dt>
<dt>'format.pages</dt>
<dt>{ type empty$</dt>
<dt>{ "chapter" }</dt>
<dt>{ type "l" change.case$ }</dt>
<dt>if$</dt>
<dt>chapter tie.or.space.connect</dt>
<dt>pages empty$</dt>
<dt>'skip$</dt>
<dt>{ ", " * format.pages * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.in.ed.booktitle}</dt>
<dt>{ booktitle empty$</dt>
<dt>{ "" }</dt>
<dt>{ editor empty$</dt>
<dt>{ "In " booktitle emphasize * }</dt>
<dt>{ "In " format.editors * ", " * booktitle emphasize * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {empty.misc.check}</dt>
<dt>{ author empty$ title empty$ howpublished empty$</dt>
<dt>month empty$ year empty$ note empty$</dt>
<dt>and and and and and</dt>
<dt>key empty$ not and</dt>
<dt>{ "all relevant fields are empty in " cite$ * warning$ }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.thesis.type}</dt>
<dt>{ type empty$</dt>
<dt>'skip$</dt>
<dt>{ pop$</dt>
<dt>type "t" change.case$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.tr.number}</dt>
<dt>{ type empty$</dt>
<dt>{ "Technical Report" }</dt>
<dt>'type</dt>
<dt>if$</dt>
<dt>number empty$</dt>
<dt>{ "t" change.case$ }</dt>
<dt>{ number tie.or.space.connect }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.article.crossref}</dt>
<dt>{ key empty$</dt>
<dt>{ journal empty$</dt>
<dt>{ "need key or journal for " cite$ * " to crossref " * crossref *</dt>
<dt>warning$</dt>
<dt>""</dt>
<dt>}</dt>
<dt>{ "In {\em " journal * "\/}" * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ "In " key * }</dt>
<dt>if$</dt>
<dt>" \cite{" * crossref * "}" *</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.crossref.editor}</dt>
<dt>{ editor #1 "{vv~}{ll}" format.name$</dt>
<dt>editor num.names$ duplicate$</dt>
<dt>#2 &gt;</dt>
<dt>{ pop$ " et~al." * }</dt>
<dt>{ #2 &lt;</dt>
<dt>'skip$</dt>
<dt>{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =</dt>
<dt>{ " et~al." * }</dt>
<dt>{ " and " * editor #2 "{vv~}{ll}" format.name$ * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.book.crossref}</dt>
<dt>{ volume empty$</dt>
<dt>{ "empty volume in " cite$ * "'s crossref of " * crossref *
warning$</dt>
<dt>"In "</dt>
<dt>}</dt>
<dt>{ "Volume" volume tie.or.space.connect</dt>
<dt>" of " *</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>editor empty$</dt>
<dt>editor field.or.null author field.or.null =</dt>
<dt>or</dt>
<dt>{ key empty$</dt>
<dt>{ series empty$</dt>
<dt>{ "need editor, key, or series for " cite$ * " to crossref " *</dt>
<dt>crossref * warning$</dt>
<dt>"" *</dt>
<dt>}</dt>
<dt>{ "{\em " * series * "\/}" * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ key * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ format.crossref.editor * }</dt>
<dt>if$</dt>
<dt>" \cite{" * crossref * "}" *</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {format.incoll.inproc.crossref}</dt>
<dt>{ editor empty$</dt>
<dt>editor field.or.null author field.or.null =</dt>
<dt>or</dt>
<dt>{ key empty$</dt>
<dt>{ booktitle empty$</dt>
<dt>{ "need editor, key, or booktitle for " cite$ * " to crossref " *</dt>
<dt>crossref * warning$</dt>
<dt>""</dt>
<dt>}</dt>
<dt>{ "In {\em " booktitle * "\/}" * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ "In " key * }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ "In " format.crossref.editor * }</dt>
<dt>if$</dt>
<dt>" \cite{" * crossref * "}" *</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {article}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors "author" output.check</dt>
<dt>new.block</dt>
<dt>format.title "title" output.check</dt>
<dt>new.block</dt>
<dt>crossref missing$</dt>
<dt>{ journal emphasize "journal" output.check</dt>
<dt>format.vol.num.pages output</dt>
<dt>format.date "year" output.check</dt>
<dt>}</dt>
<dt>{ format.article.crossref output.nonnull</dt>
<dt>format.pages output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {book}</dt>
<dt>{ output.bibitem</dt>
<dt>author empty$</dt>
<dt>{ format.editors "author and editor" output.check }</dt>
<dt>{ format.authors output.nonnull</dt>
<dt>crossref missing$</dt>
<dt>{ "author and editor" editor either.or.check }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>format.btitle "title" output.check</dt>
<dt>crossref missing$</dt>
<dt>{ format.bvolume output</dt>
<dt>new.block</dt>
<dt>format.number.series output</dt>
<dt>new.sentence</dt>
<dt>publisher "publisher" output.check</dt>
<dt>address output</dt>
<dt>}</dt>
<dt>{ new.block</dt>
<dt>format.book.crossref output.nonnull</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>format.edition output</dt>
<dt>format.date "year" output.check</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {booklet}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors output</dt>
<dt>new.block</dt>
<dt>format.title "title" output.check</dt>
<dt>howpublished address new.block.checkb</dt>
<dt>howpublished output</dt>
<dt>address output</dt>
<dt>format.date output</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {inbook}</dt>
<dt>{ output.bibitem</dt>
<dt>author empty$</dt>
<dt>{ format.editors "author and editor" output.check }</dt>
<dt>{ format.authors output.nonnull</dt>
<dt>crossref missing$</dt>
<dt>{ "author and editor" editor either.or.check }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>format.btitle "title" output.check</dt>
<dt>crossref missing$</dt>
<dt>{ format.bvolume output</dt>
<dt>format.chapter.pages "chapter and pages" output.check</dt>
<dt>new.block</dt>
<dt>format.number.series output</dt>
<dt>new.sentence</dt>
<dt>publisher "publisher" output.check</dt>
<dt>address output</dt>
<dt>}</dt>
<dt>{ format.chapter.pages "chapter and pages" output.check</dt>
<dt>new.block</dt>
<dt>format.book.crossref output.nonnull</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>format.edition output</dt>
<dt>format.date "year" output.check</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {incollection}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors "author" output.check</dt>
<dt>new.block</dt>
<dt>format.title "title" output.check</dt>
<dt>new.block</dt>
<dt>crossref missing$</dt>
<dt>{ format.in.ed.booktitle "booktitle" output.check</dt>
<dt>format.bvolume output</dt>
<dt>format.number.series output</dt>
<dt>format.chapter.pages output</dt>
<dt>new.sentence</dt>
<dt>publisher "publisher" output.check</dt>
<dt>address output</dt>
<dt>format.edition output</dt>
<dt>format.date "year" output.check</dt>
<dt>}</dt>
<dt>{ format.incoll.inproc.crossref output.nonnull</dt>
<dt>format.chapter.pages output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {inproceedings}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors "author" output.check</dt>
<dt>new.block</dt>
<dt>format.title "title" output.check</dt>
<dt>new.block</dt>
<dt>crossref missing$</dt>
<dt>{ format.in.ed.booktitle "booktitle" output.check</dt>
<dt>format.bvolume output</dt>
<dt>format.number.series output</dt>
<dt>format.pages output</dt>
<dt>address empty$</dt>
<dt>{ organization publisher new.sentence.checkb</dt>
<dt>organization output</dt>
<dt>publisher output</dt>
<dt>format.date "year" output.check</dt>
<dt>}</dt>
<dt>{ address output.nonnull</dt>
<dt>format.date "year" output.check</dt>
<dt>new.sentence</dt>
<dt>organization output</dt>
<dt>publisher output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ format.incoll.inproc.crossref output.nonnull</dt>
<dt>format.pages output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {conference} { inproceedings }</dt>
<dt><br>
</dt>
<dt>FUNCTION {manual}</dt>
<dt>{ output.bibitem</dt>
<dt>author empty$</dt>
<dt>{ organization empty$</dt>
<dt>'skip$</dt>
<dt>{ organization output.nonnull</dt>
<dt>address output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ format.authors output.nonnull }</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>format.btitle "title" output.check</dt>
<dt>author empty$</dt>
<dt>{ organization empty$</dt>
<dt>{ address new.block.checka</dt>
<dt>address output</dt>
<dt>}</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ organization address new.block.checkb</dt>
<dt>organization output</dt>
<dt>address output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>format.edition output</dt>
<dt>format.date output</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {mastersthesis}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors "author" output.check</dt>
<dt>new.block</dt>
<dt>format.title "title" output.check</dt>
<dt>new.block</dt>
<dt>"Master's thesis" format.thesis.type output.nonnull</dt>
<dt>school "school" output.check</dt>
<dt>address output</dt>
<dt>format.date "year" output.check</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {misc}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors output</dt>
<dt>title howpublished new.block.checkb</dt>
<dt>format.title output</dt>
<dt>howpublished new.block.checka</dt>
<dt>howpublished output</dt>
<dt>format.date output</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>empty.misc.check</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {phdthesis}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors "author" output.check</dt>
<dt>new.block</dt>
<dt>format.btitle "title" output.check</dt>
<dt>new.block</dt>
<dt>"PhD thesis" format.thesis.type output.nonnull</dt>
<dt>school "school" output.check</dt>
<dt>address output</dt>
<dt>format.date "year" output.check</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {proceedings}</dt>
<dt>{ output.bibitem</dt>
<dt>editor empty$</dt>
<dt>{ organization output }</dt>
<dt>{ format.editors output.nonnull }</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>format.btitle "title" output.check</dt>
<dt>format.bvolume output</dt>
<dt>format.number.series output</dt>
<dt>address empty$</dt>
<dt>{ editor empty$</dt>
<dt>{ publisher new.sentence.checka }</dt>
<dt>{ organization publisher new.sentence.checkb</dt>
<dt>organization output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>publisher output</dt>
<dt>format.date "year" output.check</dt>
<dt>}</dt>
<dt>{ address output.nonnull</dt>
<dt>format.date "year" output.check</dt>
<dt>new.sentence</dt>
<dt>editor empty$</dt>
<dt>'skip$</dt>
<dt>{ organization output }</dt>
<dt>if$</dt>
<dt>publisher output</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {techreport}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors "author" output.check</dt>
<dt>new.block</dt>
<dt>format.title "title" output.check</dt>
<dt>new.block</dt>
<dt>format.tr.number output.nonnull</dt>
<dt>institution "institution" output.check</dt>
<dt>address output</dt>
<dt>format.date "year" output.check</dt>
<dt>new.block</dt>
<dt>note output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {unpublished}</dt>
<dt>{ output.bibitem</dt>
<dt>format.authors "author" output.check</dt>
<dt>new.block</dt>
<dt>format.title "title" output.check</dt>
<dt>new.block</dt>
<dt>note "note" output.check</dt>
<dt>format.date output</dt>
<dt>fin.entry</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {default.type} { misc }</dt>
<dt><br>
</dt>
<dt>MACRO {jan} {"Jan."}</dt>
<dt><br>
</dt>
<dt>MACRO {feb} {"Feb."}</dt>
<dt><br>
</dt>
<dt>MACRO {mar} {"Mar."}</dt>
<dt><br>
</dt>
<dt>MACRO {apr} {"Apr."}</dt>
<dt><br>
</dt>
<dt>MACRO {may} {"May"}</dt>
<dt><br>
</dt>
<dt>MACRO {jun} {"June"}</dt>
<dt><br>
</dt>
<dt>MACRO {jul} {"July"}</dt>
<dt><br>
</dt>
<dt>MACRO {aug} {"Aug."}</dt>
<dt><br>
</dt>
<dt>MACRO {sep} {"Sept."}</dt>
<dt><br>
</dt>
<dt>MACRO {oct} {"Oct."}</dt>
<dt><br>
</dt>
<dt>MACRO {nov} {"Nov."}</dt>
<dt><br>
</dt>
<dt>MACRO {dec} {"Dec."}</dt>
<dt><br>
</dt>
<dt>MACRO {acmcs} {"ACM Comput. Surv."}</dt>
<dt><br>
</dt>
<dt>MACRO {acta} {"Acta Inf."}</dt>
<dt><br>
</dt>
<dt>MACRO {cacm} {"Commun. ACM"}</dt>
<dt><br>
</dt>
<dt>MACRO {ibmjrd} {"IBM J. Res. Dev."}</dt>
<dt><br>
</dt>
<dt>MACRO {ibmsj} {"IBM Syst.~J."}</dt>
<dt><br>
</dt>
<dt>MACRO {ieeese} {"IEEE Trans. Softw. Eng."}</dt>
<dt><br>
</dt>
<dt>MACRO {ieeetc} {"IEEE Trans. Comput."}</dt>
<dt><br>
</dt>
<dt>MACRO {ieeetcad}</dt>
<dt>{"IEEE Trans. Comput.-Aided Design Integrated Circuits"}</dt>
<dt><br>
</dt>
<dt>MACRO {ipl} {"Inf. Process. Lett."}</dt>
<dt><br>
</dt>
<dt>MACRO {jacm} {"J.~ACM"}</dt>
<dt><br>
</dt>
<dt>MACRO {jcss} {"J.~Comput. Syst. Sci."}</dt>
<dt><br>
</dt>
<dt>MACRO {scp} {"Sci. Comput. Programming"}</dt>
<dt><br>
</dt>
<dt>MACRO {sicomp} {"SIAM J. Comput."}</dt>
<dt><br>
</dt>
<dt>MACRO {tocs} {"ACM Trans. Comput. Syst."}</dt>
<dt><br>
</dt>
<dt>MACRO {tods} {"ACM Trans. Database Syst."}</dt>
<dt><br>
</dt>
<dt>MACRO {tog} {"ACM Trans. Gr."}</dt>
<dt><br>
</dt>
<dt>MACRO {toms} {"ACM Trans. Math. Softw."}</dt>
<dt><br>
</dt>
<dt>MACRO {toois} {"ACM Trans. Office Inf. Syst."}</dt>
<dt><br>
</dt>
<dt>MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}</dt>
<dt><br>
</dt>
<dt>MACRO {tcs} {"Theoretical Comput. Sci."}</dt>
<dt><br>
</dt>
<dt>READ</dt>
<dt><br>
</dt>
<dt>FUNCTION {sortify}</dt>
<dt>{ purify$</dt>
<dt>"l" change.case$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>INTEGERS { len }</dt>
<dt><br>
</dt>
<dt>FUNCTION {chop.word}</dt>
<dt>{ 's :=</dt>
<dt>'len :=</dt>
<dt>s #1 len substring$ =</dt>
<dt>{ s len #1 + global.max$ substring$ }</dt>
<dt>'s</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {sort.format.names}</dt>
<dt>{ 's :=</dt>
<dt>#1 'nameptr :=</dt>
<dt>""</dt>
<dt>s num.names$ 'numnames :=</dt>
<dt>numnames 'namesleft :=</dt>
<dt>{ namesleft #0 &gt; }</dt>
<dt>{ nameptr #1 &gt;</dt>
<dt>{ " " * }</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=</dt>
<dt>nameptr numnames = t "others" = and</dt>
<dt>{ "et al" * }</dt>
<dt>{ t sortify * }</dt>
<dt>if$</dt>
<dt>nameptr #1 + 'nameptr :=</dt>
<dt>namesleft #1 - 'namesleft :=</dt>
<dt>}</dt>
<dt>while$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {sort.format.title}</dt>
<dt>{ 't :=</dt>
<dt>"A " #2</dt>
<dt>"An " #3</dt>
<dt>"The " #4 t chop.word</dt>
<dt>chop.word</dt>
<dt>chop.word</dt>
<dt>sortify</dt>
<dt>#1 global.max$ substring$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {author.sort}</dt>
<dt>{ author empty$</dt>
<dt>{ key empty$</dt>
<dt>{ "to sort, need author or key in " cite$ * warning$</dt>
<dt>""</dt>
<dt>}</dt>
<dt>{ key sortify }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ author sort.format.names }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {author.editor.sort}</dt>
<dt>{ author empty$</dt>
<dt>{ editor empty$</dt>
<dt>{ key empty$</dt>
<dt>{ "to sort, need author, editor, or key in " cite$ * warning$</dt>
<dt>""</dt>
<dt>}</dt>
<dt>{ key sortify }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ editor sort.format.names }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ author sort.format.names }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {author.organization.sort}</dt>
<dt>{ author empty$</dt>
<dt>{ organization empty$</dt>
<dt>{ key empty$</dt>
<dt>{ "to sort, need author, organization, or key in " cite$ * warning$</dt>
<dt>""</dt>
<dt>}</dt>
<dt>{ key sortify }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ "The " #4 organization chop.word sortify }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ author sort.format.names }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {editor.organization.sort}</dt>
<dt>{ editor empty$</dt>
<dt>{ organization empty$</dt>
<dt>{ key empty$</dt>
<dt>{ "to sort, need editor, organization, or key in " cite$ * warning$</dt>
<dt>""</dt>
<dt>}</dt>
<dt>{ key sortify }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ "The " #4 organization chop.word sortify }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>{ editor sort.format.names }</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {presort}</dt>
<dt>{ type$ "book" =</dt>
<dt>type$ "inbook" =</dt>
<dt>or</dt>
<dt>'author.editor.sort</dt>
<dt>{ type$ "proceedings" =</dt>
<dt>'editor.organization.sort</dt>
<dt>{ type$ "manual" =</dt>
<dt>'author.organization.sort</dt>
<dt>'author.sort</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>}</dt>
<dt>if$</dt>
<dt>" "</dt>
<dt>*</dt>
<dt>year field.or.null sortify</dt>
<dt>*</dt>
<dt>" "</dt>
<dt>*</dt>
<dt>title field.or.null</dt>
<dt>sort.format.title</dt>
<dt>*</dt>
<dt>#1 entry.max$ substring$</dt>
<dt>'sort.key$ :=</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>ITERATE {presort}</dt>
<dt><br>
</dt>
<dt>SORT</dt>
<dt><br>
</dt>
<dt>STRINGS { longest.label }</dt>
<dt><br>
</dt>
<dt>INTEGERS { number.label longest.label.width }</dt>
<dt><br>
</dt>
<dt>FUNCTION {initialize.longest.label}</dt>
<dt>{ "" 'longest.label :=</dt>
<dt>#1 'number.label :=</dt>
<dt>#0 'longest.label.width :=</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>FUNCTION {longest.label.pass}</dt>
<dt>{ number.label int.to.str$ 'label :=</dt>
<dt>number.label #1 + 'number.label :=</dt>
<dt>label width$ longest.label.width &gt;</dt>
<dt>{ label 'longest.label :=</dt>
<dt>label width$ 'longest.label.width :=</dt>
<dt>}</dt>
<dt>'skip$</dt>
<dt>if$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>EXECUTE {initialize.longest.label}</dt>
<dt><br>
</dt>
<dt>ITERATE {longest.label.pass}</dt>
<dt><br>
</dt>
<dt>FUNCTION {begin.bib}</dt>
<dt>{ preamble$ empty$</dt>
<dt>'skip$</dt>
<dt>{ preamble$ write$ newline$ }</dt>
<dt>if$</dt>
<dt>"\begin{thebibliography}{" longest.label * "}" * write$ newline$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>EXECUTE {begin.bib}</dt>
<dt><br>
</dt>
<dt>EXECUTE {init.state.consts}</dt>
<dt><br>
</dt>
<dt>ITERATE {call.type$}</dt>
<dt><br>
</dt>
<dt>FUNCTION {end.bib}</dt>
<dt>{ newline$</dt>
<dt>"\end{thebibliography}" write$ newline$</dt>
<dt>}</dt>
<dt><br>
</dt>
<dt>EXECUTE {end.bib}</dt>
</dl>
</body>
</html>
</html>