@inproceedings{MesPayNeu2002-1,
 author    = {Fred Mesnard and Etienne Payet and Ulrich Neumerkel},
 title     = {Non-termination inference for optimal termination conditions of logic programs},
 booktitle = {Onz\`{e}mes Journ\'{e}es Francophones de Programmation Logique et Programmation par Contraintes (JFPLC'02)},
 address   = "Paris",
 publisher = "Herm\`{e}s Science Publications",
 year      = 2002}

@InProceedings{NeuKra2002-2,
 author    = {Ulrich Neumerkel and Stefan Kral},
 title     = {Declarative program development in Prolog with GUPU},
 booktitle = {Proceedings of the 12th Workshop on Logic Programming Environments},
 year      = 2002,
 month     = jul,
 address   = "Copenhagen"}

@InProceedings{MesPayNeu2002-3,
 author    = "Fred Mesnard and {\'E}tienne Payet Ulrich Neumerkel",
 title     = "Dectecting Optimal Termination Conditions of Logic Programs",
 booktitle = "9th Static Analysis Symposium (SAS'02)",
 series    = {LNCS},
 number    = 2477,
 publisher = "Springer-Verlag",
 address   = "Madrid",
 year      = 2002}

@Article{ertl+02,
  author =	 {M. Anton Ertl and David Gregg and Andreas Krall and
                  Bernd Paysan},
  title =	 {\textsf{vmgen} --- A Generator of Efficient Virtual
                  Machine Interpreters},
  journal =	 {Software---Practice and Experience},
  year =	 {2002},
  volume =	 {32},
  number =	 {3},
  pages =	 {265--294},
  OPTmonth =	 {},
  url =          {http://www.complang.tuwien.ac.at/papers/ertl+02.ps.gz},
  abstract-url = {http://www3.interscience.wiley.com/cgi-bin/abstract/90010508/START},
  keywords =	 {interpreter; virtual machine; generator; stack
                  architecture; superinstruction; byte code},
  abstract =	 {In a virtual machine interpreter, the code for each
                  virtual machine instruction has similarities to code
                  for other instructions. We present an interpreter
                  generator that takes simple virtual machine
                  instruction descriptions as input and generates C
                  code for processing the instructions in several
                  ways: execution, virtual machine code generation,
                  disassembly, tracing, and profiling. The generator
                  is designed to support efficient interpreters: it
                  supports threaded code, caching the top-of-stack
                  item in a register, combining simple instructions
                  into superinstructions, and other optimizations. We
                  have used the generator to create interpreters for
                  Forth and Java. The resulting interpreters are
                  faster than other interpreters for the same
                  languages and they are typically 2-10 times slower
                  than code produced by native-code compilers. We also
                  present results for the effects of the individual
                  optimizations supported by the generator.}
}

@InProceedings{ertl&gregg02,
  author =	 {M. Anton Ertl and David Gregg},
  title =	 {Building an interpreter with \textsf{vmgen}},
  booktitle =	 {Compiler Construction (CC'02)},
  pages =	 {5--9},
  year =	 {2002},
  publisher =	 {Springer LNCS~2304},
  note =	 {Tool Demonstration},
  url =		 {http://www.complang.tuwien.ac.at/papers/ertl%26gregg02.ps.gz},
  abstract =	 {\textsf{Vmgen} automates many of the tasks of
                  writing the virtual machine part of an interpreter,
                  resulting in less coding, debugging and maintenance
                  effort. This paper gives some quantitative data
                  about the source code and generated code for a
                  \textsf{vmgen}-based interpreter, and gives some
                  examples demonstrating the simplicity of using
                  \textsf{vmgen}.}
}

@InProceedings{ertl02,
  author =	 {M. Anton Ertl},
  title =	 {Threaded Code Variations and Optimizations (Extended
                  Version)},
  booktitle =	 {Forth-Tagung 2002},
  year =	 {2002},
  address =	 {Garmisch-Partenkirchen},
  url =          {http://www.complang.tuwien.ac.at/papers/ertl02.ps.gz},
  abstract =	 {Forth has been traditionally implemented as indirect
                  threaded code, where the code for non-primitives is
                  the code-field address of the word. To get the
                  maximum benefit from combining sequences of
                  primitives into superinstructions, the code produced
                  for a non-primitive should be a primitive followed
                  by a parameter (e.g., \code{lit} \emph{addr} for
                  variables). This paper takes a look at the steps
                  from a traditional threaded-code implementation to
                  superinstructions, and at the size and speed effects
                  of the various steps.\comment{It also compares these
                  variants of Gforth to various other Forth
                  implementations on contemporary machines.} The use
                  of superinstructions gives speedups of up to a
                  factor of 2 on large benchmarks on processors with
                  branch target buffers, but requires more space for
                  the primitives and the optimization tables, and also
                  a little more space for the threaded code.}
}

@InProceedings{ertl02ef,
  author = 	 {M. Anton Ertl},
  title = 	 {The Evolution of Vmgen},
  crossref =	 {euroforth02},
  pages =	 {33--37},
  url =		 {http://www.complang.tuwien.ac.at/anton/euroforth2002/papers/ertl.ps.gz},
  note =	 {Slides}
}

@InProceedings{ertl02efb,
  author = 	 {M. Anton Ertl},
  title = 	 {Superinstructions in {Gforth}},
  crossref =	 {euroforth02},
  note =	 {Demonstration only, no paper}
}

@Proceedings{euroforth02,
  title = 	 {18th EuroForth Conference},
  booktitle = 	 {18th EuroForth Conference},
  year = 	 {2002},
  key =		 {EuroForth'02},
  editor =	 {M. Anton Ertl}
}

@InProceedings{Probst02,
  author =	{Mark Probst},
  title =	{Dynamic Binary Translation},
  booktitle =	{UKUUG Linux Developer's Conference 2002},
  year =	{2002}
}

@INPROCEEDINGS{LaKrPu02a ,
	AUTHOR      = {Martin Lackner and Andreas Krall and Franz Puntigam},
	TITLE       = {Supporting Design by Contract in Java},
	BOOKTITLE   = {TOOLS USA 2002},
	EDITOR      = {Christine Mingins},
	PAGES       = {57--76},
	ADDRESS     = {Santa Barbara},
	MONTH       = {July},
	YEAR        = {2002},
	URL         = {http://www.jot.fm/issues/issue_2002_08/article4},
	ABSTRACT    = {
                  Design by Contract is a valuable design method for trusted
                  software components. Eiffel shows how to provide appropriate
                  language support for it. However, no such concepts currently
                  exist in Java. Full integration of them into Java may help
                  to improve and guarantee the quality of Java classes. We
                  briefly compare several approaches to extend Java in this
                  way and present our model and a compiler that translates
                  extended Java code into JVM byte code. Our Java extension
                  integrates preconditions, postconditions, and invariants as
                  in Eiffel while respecting the characteristics of Java. The
                  evaluation shows that Design by Contract can be added
                  effciently to Java while keeping compatibility.}
}


@ARTICLE{LaKrPu02b ,
	AUTHOR      = {Martin Lackner and Andreas Krall and Franz Puntigam},
	TITLE       = {Supporting Design by Contract in Java},
	JOURNAL     = {Journal of Object Technology},
	VOLUME      = {1},
	NUMBER      = {3},
	PAGES       = {57--76},
	YEAR        = {2002},
	URL         = {http://www.jot.fm/issues/issue_2002_08/article4},
	ABSTRACT    = {
                  Design by Contract is a valuable design method for trusted
                  software components. Eiffel shows how to provide appropriate
                  language support for it. However, no such concepts currently
                  exist in Java. Full integration of them into Java may help
                  to improve and guarantee the quality of Java classes. We
                  briefly compare several approaches to extend Java in this
                  way and present our model and a compiler that translates
                  extended Java code into JVM byte code. Our Java extension
                  integrates preconditions, postconditions, and invariants as
                  in Eiffel while respecting the characteristics of Java. The
                  evaluation shows that Design by Contract can be added
                  effciently to Java while keeping compatibility.}
}


@INCOLLECTION{KrHo02,
	AUTHOR      = {Andreas Krall and Nigel Horspool},
	EDITOR      = {Y.N. Skrikant and Priti Shankar},
	BOOKTITLE   = {The Compiler Design Handbook:
	               Optimizations and Machine Code Generation},
	TITLE       = {Optimizations for Object-Oriented Languages},
	PUBLISHER   = {CRC Press},
	PAGES       = {928},
	MONTH       = {September},
	YEAR        = {2002}
}


@INPROCEEDINGS{PrKrSch02,
	AUTHOR      = {Mark Probst and Andreas Krall and Bernhard Scholz},
	TITLE       = {Register Liveness Analysis for Optimizing Binary Translation},
	BOOKTITLE   = {Working Conference on Reverse Engineering},
	EDITOR      = {Elizabeth Burd and Arie van Deursen},
	PUBLISHER   = {IEEE},
	ADDRESS     = {Richmond},
	MONTH       = {October},
	YEAR        = 2002}

@inproceedings{SM02,
AUTHOR      = { Bernhard Scholz and Eduard Mehofer },
TITLE       = { {Dataflow frequency analysis based on whole program paths} },
BOOKTITLE   = { Proceedings of the IEEE International Conference on Parallel
                Architectures and Compilation Techniques (PACT-2002) },
YEAR        = { 2002 },
ADDRESS     = { Charlottesville, VA },
MONTH       = { September },
}

@inproceedings{SE02,
AUTHOR      = { Bernhard Scholz and Erik Eckstein},  
TITLE       = { {Register Allocation for Irregular Architectures}}, 
BOOKTITLE   = { Proceedings of the Joint-Conference on Languages, 
                Compilers, and Tools for Embedded Systems and Software 
                and Compilers for Embedded Systems (LCTES/SCOPES)},
YEAR        = { 2002 },
ADDRESS     = { Berlin, Germany },
MONTH       = { June }
}

@Unpublished{S02a,
AUTHOR      =  { Bernhard Scholz},
TITLE       =  { { Probabilistic Data Flow Analysis and its Applications }},
NOTE        =  { Talk given at the French National Institute for Research 
                 in Computer Science and Control (INRIA) },
YEAR        =  { 2002 },
ADDRESS     =  { Paris, France },
MONTH       =  { February },
URL         =  { http://www-rocq.inria.fr/a3/seminars/scholz.html },
ABSTRACT    = "Classical data flow analysis determines whether a data
               flow fact may hold or does not hold at some program point. 
               Probabilistic data flow analysis (PDFA) systems compute a 
               range, i.e. a probability, with which a data flow fact will 
               hold at some program point.  In this talk a novel, practicable 
               framework for probabilistic data flow problems is presented and
               some applications for PDFA are given.  Effectiveness and 
               efficiency of our approach are shown by performance numbers of 
               the SPECint95 benchmark suite."
}

@Unpublished{S02b,
AUTHOR      =  { Bernhard Scholz },
TITLE       =  { { Speculative Partial Redundancy Elimination }},
NOTE        =  { Workshop on Compiler-Driven Performance (co-loacted with CASCON'02) },
YEAR        =  { 2002 },
MONTH       =  { October },
ADDRESS     =  { Toronto, Canada}
} 
