Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Raymie Stata

dblp:60/5248 · DBLP profile ↗
← Back
12ranked-venue papers
6as first author
0since 2021 · last 2011
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 3 first-authorDatabases, data management, data science and information retrieval · 4 · 1 first-authorComputer networks · 3 · 1 first-authorArtificial intelligence and machine learning · 1Systems, architecture and hardware · 1 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1Theory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Programming languages and type systems · 50% Program verification · 37% Compilers and program optimization · 10%
Theoretical computer science
2 papers
Mathematical optimization · 92% Automated reasoning and model checking · 8%
Computer networks
1 paper
Network optimization and economics · 100%
Databases, data mining, and information retrieval
2 papers
Database system architecture and tuning · 59% Information retrieval · 41%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Performance modeling and evaluation · 100%

Topics — the 14 heaviest of 18, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Network optimization and economics › network economics
revenue sharing
0.112011
Efficient online ad serving in a display advertising exchange · WSDM 2011
Programming languages and type systems
bytecode verification
0.021999
A Type System for Java Bytecode Subroutines · ACM Trans. Program. Lang. Syst. 1999
A Type System for Java Bytecode Subroutines · POPL 1998
Programming languages and type systems
type systems
0.021999
A Type System for Java Bytecode Subroutines · ACM Trans. Program. Lang. Syst. 1999
A Type System for Java Bytecode Subroutines · POPL 1998
Program verification › deductive verification
extended static checking
0.012002
Extended Static Checking for Java · PLDI 2002
Program verification › deductive verification
verification condition generation
0.012002
Extended Static Checking for Java · PLDI 2002
Compilers and program optimization › intermediate representation › bytecode
java bytecode
0.011999
A Type System for Java Bytecode Subroutines · ACM Trans. Program. Lang. Syst. 1999
Information retrieval
search engines
0.012006
Parallel programming in modern web search engines · PPoPP 2006
Information retrieval
personal information management
0.012004
The Bloomba Personal Content Database · VLDB 2004
Program verification
modular reasoning
0.011995
Modular Reasoning in the Presence of Subclassing · OOPSLA 1995
Programming languages and type systems
object-oriented programming
0.011995
Modular Reasoning in the Presence of Subclassing · OOPSLA 1995
Programming languages and type systems › inheritance
subclassing
0.011995
Modular Reasoning in the Presence of Subclassing · OOPSLA 1995
Automated reasoning and model checking
theorem proving
0.012002
Extended Static Checking for Java · PLDI 2002
Requirements engineering and software design
software architecture
0.011995
Modular Reasoning in the Presence of Subclassing · OOPSLA 1995
Requirements engineering and software design
specification
0.011995
Modular Reasoning in the Presence of Subclassing · OOPSLA 1995

Methods — techniques the papers use, named apart from their topics

precomputation · 0.4polynomial-time algorithm · 0.4candidate ordering · 0.4theorem proving · 0.1annotation language · 0.1typing rules · 0.0
YearPublicationVenuePosition
2011 Efficient online ad serving in a display advertising exchange
abstract
We introduce and formalize a novel constrained path optimization problem that is the heart of the real-time ad serving task in the Yahoo! (formerly RightMedia) Display Advertising Exchange. In the Exchange, the ad server's task for each display opportunity is to compute, with low latency, an optimal valid path through a directed graph representing the business arrangements between the hundreds of thousands of business entities that are participating in the Exchange. These entities include not only publishers and advertisers, but also intermediate entities called "ad networks" which have delegated their ad serving responsibilities to the Exchange. Path optimality is determined by the payment to the publisher, and is affected by an advertiser's bid and also by the revenue-sharing agreements between the entities in the chosen path leading back to the publisher. Path validity is determined by constraints which focus on the following three issues: 1) suitability of the opportunity's web page and its publisher 2)suitability of the user who is currently viewing that web page, and 3) suitability of a candidate ad and its advertiser. Because the Exchange's constrained path optimization task is novel, there are no published algorithms for it. This paper describes two different algorithms that have both been successfully used in the actual Yahoo! ad server. The first algorithm has the advantage of being extremely simple, while the second is more robust thanks to its polynomial worst-case running time. In both cases, meeting latency caps has required that the basic algorithms be improved by optimizations; we will describe a candidate ordering scheme and a pre-computation scheme that have both been effective in reducing latency in the real ad serving system that serves over ten billion ad calls per day.
Kevin J. Lang, Joaquin Delgado, Dongming Jiang, Bhaskar Ghosh, Shirshanka Das, Amita Gajewar, Swaroop Jagadish, Arathi Seshan, Chavdar Botev, Michael Ortega-Binderberger, Sunil Nagaraj, Raymie Stata
WSDM12
2006 Parallel programming in modern web search engines
abstract
When a Search Engine responds to your query, thousands of machines from around the world have cooperated to produce your result. With a global reach of hundreds-of-millions of users, Search Engines are arguably the most commonly used massively-parallel computing systems on the planet.In this talk, we examine Web Search Engines as a case study of parallel programming in a practical context. We focus primarily on the practice of parallel programming, reviewing many ways in which parallel programming is used in a modern Search Engine. We also discuss briefly the principles of parallel programming, listing some of the principles that guide our use of parallelism and speculating a bit on how the mechanics of parallelism might better be automated in our context.
Raymie Stata
PPoPP1
2004 The Bloomba Personal Content Database
Raymie Stata, Patrick Hunt, Thiruvalluvan M. G.
VLDB1
2002 The Link Database: Fast Access to Graphs of the Web
abstract
The Connectivity Server is a special-purpose database whose schema models the Web as a graph: a set of nodes (URL) connected by directed edges (hyperlinks). The Link Database provides fast access to the hyperlinks. To support easy implementation of a wide range of graph algorithms we have found it important to fit the Link Database into RAM. In the first version of the Link Database, we achieved this fit by using machines with lots of memory (8 GB), and storing each hyperlink in 32 bits. However, this approach was limited to roughly 100 million Web pages. This paper presents techniques to compress the links to accommodate larger graphs. Our techniques combine well-known compression methods with methods that depend on the properties of the Web graph. The first compression technique takes advantage of the fact that most hyperlinks on most Web pages point to other pages on the same host as the page itself. The second technique takes advantage of the fact that many pages on the same host share hyperlinks, that is, they tend to point to a common set of pages. Together, these techniques reduce space requirements to under 6 bits per link. While (de)compression adds latency to the hyperlink access time, we can still compute the strongly connected components of a 6 billion-edge graph in 22 minutes and run applications such as Kleinberg's HITS in real time. This paper describes our techniques for compressing the Link Database, and provides performance numbers for compression ratios and decompression speed.
Keith H. Randall, Raymie Stata, Janet L. Wiener, Rajiv Wickremesinghe
DCC2
2002 Extended Static Checking for Java
abstract
Software development and maintenance are costly endeavors. The cost can be reduced if more software defects are detected earlier in the development cycle. This paper introduces the Extended Static Checker for Java (ESC/Java), an experimental compile-time program checker that finds common programming errors. The checker is powered by verification-condition generation and automatic theorem-proving techniques. It provides programmers with a simple annotation language with which programmer design decisions can be expressed formally. ESC/Java examines the annotated software and warns of inconsistencies between the design decisions recorded in the annotations and the actual code, and also warns of potential runtime errors in the code. This paper gives an overview of the checker architecture and annotation language and describes our experience applying the checker to tens of thousands of lines of Java programs.
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, Raymie Stata
PLDI6
2000 Graph structure in the Web
Andrei Z. Broder, Ravi Kumar 0001, Farzin Maghoul, Prabhakar Raghavan, Sridhar Rajagopalan, Raymie Stata, Andrew Tomkins, Janet L. Wiener
Comput. Networks6
2000 The Term Vector Database: fast access to indexing terms for Web pages
Raymie Stata, Krishna Bharat, Farzin Maghoul
Comput. Networks1
1999 Virginity: A Contribution to the Specification of Object-Oriented Software
K. Rustan M. Leino, Raymie Stata
Inf. Process. Lett.2
1999 A Type System for Java Bytecode Subroutines
abstract
Java is typically compiled into an intermediate language, JVML, that is interpreted by the Java Virtual Machine. Because mobile JVML code is not always trusted, a bytecode verifier enforces static constraints that prevent various dynamic errors. Given the importance of the bytecode verifier for security, its current descriptions are inadequate. This article proposes using typing rules to describe the bytecode verifier because they are more precise than prose, clearer than code, and easier to reason about than either. JVML has a subroutine construct which is used for the compilation of Java's try-finally statement. Subroutines are a major source of complexity for the bytecode verifier because they are not obviously last-in/first-out and because they require a kind of polymorphism. Focusing on subroutines, we isolate an interesting, small subset of JVML. We give typing rules for this subset and prove their correctness. Our type system constitutes a sound basis for bytecode verification and a rational reconstruction of a delicate part of Sun's bytecode verifier.
Raymie Stata, Martín Abadi
ACM Trans. Program. Lang. Syst.1
1998 A Type System for Java Bytecode Subroutines
abstract
Java is typically compiled into an intermediate language, JVML, that is interpreted by the Java Virtual Machine. Because mobile JVML code is not always trusted, a bytecode verifier enforces static constraints that prevent various dynamic errors. Given the importance of the bytecode verifier for security, its current descriptions are inadequate. This paper proposes using typing rules to describe the bytecode verifier because they are more precise than prose, clearer than code, and easier to reason about than either.JVML has a subroutine construct used for the compilation of Java's try-finally statement. Subroutines are a major source of complexity for the bytecode verifier because they are not obviously last-in/first-out and because they require a kind of polymorphism. Focusing on subroutines, we isolate an interesting, small subset of JVML. We give typing rules for this subset and prove their correctness. Our type system constitutes a sound basis for bytecode verification and a rational reconstruction of a delicate part of Sun's bytecode verifier.
Raymie Stata, Martín Abadi
POPL1
1998 Secure Web Tunneling
Martín Abadi, Andrew Birrell, Raymie Stata, Edward Wobber
Comput. Networks3
1995 Modular Reasoning in the Presence of Subclassing
abstract
Considerable progress has been made in understanding how to use subtyping in a way that facilitates modular reasoning. However, using subclassing in a way that facilitates modular reasoning is not well understood. Often methods must be overriden as a group because of dependencies on instance variables, and the programmers of subclasses cannot tell which methods are grouped without looking at the code of superclasses. Also, the programmers of subclasses must look at the code of superclasses to tell what assumptions inherited methods make about the behavior of overriden methods.We present a systematic way to use subclassing that facilitates formal and informal modular reasoning. Separate specifications are given to programmers writing code that manipulates instances of a class and to programmers writing subclasses of the class. The specifications given to programmers of subclasses are divided, by division of labor specifications, into multiple parts. Subclasses may inherit or override entire parts, but not sub-parts. Reasoning about the implementation of each part is done independently of other parts.
Raymie Stata, John V. Guttag
OOPSLA1