Demo Data from EDBT 2026 / reviewers in the wild / expert
Xin Qi 0012
dblp:63/216-12
· DBLP profile ↗
7ranked-venue papers
3as first author
0since 2021 · last 2010
—ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 3 first-authorDatabases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 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
6 papers |
Programming languages and type systems · 90% Services computing and microservices · 7% Compilers and program optimization · 4% | |
| Computer architecture, parallel and distributed computing, and storage systems
3 papers |
Distributed systems · 95% Cloud and datacenter computing · 5% | |
| Network and information security
2 papers |
Systems and software security · 72% Authentication and access control · 28% |
Topics — the 17 heaviest of 22, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Distributed systems
peer-to-peer systems |
0.1 | 2 | 2009 | Fabric: a platform for secure distributed computation and storage · SOSP 2009 J&: nested intersection for scalable software composition · OOPSLA 2006 |
Programming languages and type systems › type systems
type soundness |
0.1 | 1 | 2010 | Homogeneous family sharing · OOPSLA 2010 |
Authentication and access control › security policy
confidentiality and integrity policies |
0.1 | 1 | 2009 | Fabric: a platform for secure distributed computation and storage · SOSP 2009 |
Systems and software security
information flow control |
0.1 | 1 | 2009 | Fabric: a platform for secure distributed computation and storage · SOSP 2009 |
Programming languages and type systems
extensibility |
0.1 | 1 | 2009 | Sharing classes between families · PLDI 2009 |
Programming languages and type systems › type systems
object initialization |
0.1 | 1 | 2009 | Masked types for sound object initialization · POPL 2009 |
Programming languages and type systems › type systems › behavioral type systems
typestate |
0.1 | 1 | 2009 | Masked types for sound object initialization · POPL 2009 |
Programming languages and type systems
type systems |
0.1 | 1 | 2009 | Masked types for sound object initialization · POPL 2009 |
Distributed systems › distributed database
distributed transactions |
0.1 | 1 | 2009 | Fabric: a platform for secure distributed computation and storage · SOSP 2009 |
Distributed systems › transaction processing
nested transactions |
0.1 | 1 | 2009 | Fabric: a platform for secure distributed computation and storage · SOSP 2009 |
Distributed systems › distributed system security
secure distributed computing |
0.1 | 1 | 2009 | Fabric: a platform for secure distributed computation and storage · SOSP 2009 |
Systems and software security › information flow control
information flow policies |
0.1 | 1 | 2007 | Secure web application via automatic partitioning · SOSP 2007 |
Programming languages and type systems › programming paradigms
declarative programming |
0.1 | 1 | 2007 | A unified platform for data driven web applications with automatic client-server partitioning · WWW 2007 |
Programming languages and type systems
inheritance |
0.1 | 1 | 2006 | J&: nested intersection for scalable software composition · OOPSLA 2006 |
Programming languages and type systems › module systems
software composition |
0.1 | 1 | 2006 | J&: nested intersection for scalable software composition · OOPSLA 2006 |
Programming languages and type systems
language design |
0.0 | 1 | 2010 | Homogeneous family sharing · OOPSLA 2010 |
Programming languages and type systems › language design
language extension |
0.0 | 1 | 2010 | Homogeneous family sharing · OOPSLA 2010 |
Methods — techniques the papers use, named apart from their topics
optimistic nested transactions · 0.2function shipping · 0.2data shipping · 0.2compile-time and run-time policy enforcement · 0.2trace-based evaluation · 0.1runtime partitioning · 0.1max-flow algorithm · 0.1information flow policies · 0.1type-safe composition · 0.1type soundness proof · 0.1calculus formalization · 0.1class sharing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2010 | Homogeneous family sharingabstractRecent work has introduced class sharing as a mechanism for adapting a family of related classes with new functionality. This paper introduces homogeneous family sharing, implemented in the J&h language, in which the sharing mechanism is lifted from class-level sharing to true family-level sharing. Compared to the original (heterogeneous) class sharing mechanism, homogeneous family sharing provides useful new functionality and substantially reduces the annotation burden on programmers by eliminating the need for masked types and sharing declarations. This is achieved through a new mechanism, shadow classes, which permit homogeneous sharing of all related classes in shared families. The new sharing mechanism has a straightforward semantics, which is formalized in the J&h calculus. The soundness of the J&h type system is proved. The J&h language is implemented as an extension to the J& language. To demonstrate the effectiveness of family sharing, the Polyglot compiler framework is ported to J&h. Xin Qi 0012, Andrew C. Myers |
OOPSLA | 1 |
| 2009 | Sharing classes between familiesabstractClass sharing is a new language mechanism for building extensible software systems. Recent work has separately explored two different kinds of extensibility: first, family inheritance, in which an entire family of related classes can be inherited, and second, adaptation, in which existing objects are extended in place with new behavior and state. Class sharing integrates these two kinds of extensibility mechanisms. With little programmer effort, objects of one family can be used as members of another, while preserving relationships among objects. Therefore, a family of classes can be adapted in place with new functionality spanning multiple classes. Object graphs can evolve from one family to another, adding or removing functionality even at run time. Xin Qi 0012, Andrew C. Myers |
PLDI | 1 |
| 2009 | Masked types for sound object initializationabstractThis paper presents a type-based solution to the long-standing problem of object initialization. Constructors, the conventional mechanism for object initialization, have semantics that are surprising to programmers and that lead to bugs. They also contribute to the problem of null-pointer exceptions, which make software less reliable. Masked types are a new type-state mechanism that explicitly tracks the initialization state of objects and prevents reading from uninitialized fields. In the resulting language, constructors are ordinary methods that operate on uninitialized objects, and no special default value (null) is needed in the language. Initialization of cyclic data structures is achieved with the use of conditionally masked types. Masked types are modular and compatible with data abstraction. The type system is presented in a simplified object calculus and is proved to soundly prevent reading from uninitialized fields. Masked types have been implemented as an extension to Java, in which compilation simply erases extra type information. Experience using the extended language suggests that masked types work well on real code. Xin Qi 0012, Andrew C. Myers |
POPL | 1 |
| 2009 | Fabric: a platform for secure distributed computation and storageabstractFabric is a new system and language for building secure distributed information systems. It is a decentralized system that allows heterogeneous network nodes to securely share both information and computation resources despite mutual distrust. Its high-level programming language makes distribution and persistence largely transparent to programmers. Fabric supports data-shipping and function-shipping styles of computation: both computation and information can move between nodes to meet security requirements or to improve performance. Fabric provides a rich, Java-like object model, but data resources are labeled with confidentiality and integrity policies that are enforced through a combination of compile-time and run-time mechanisms. Optimistic, nested transactions ensure consistency across all objects and nodes. A peer-to-peer dissemination layer helps to increase availability and to balance load. Results from applications built using Fabric suggest that Fabric has a clean, concise programming model, offers good performance, and enforces security. Jed Liu, Michael D. George, K. Vikram, Xin Qi 0012, Lucas Waye, Andrew C. Myers |
SOSP | 4 |
| 2007 | Secure web application via automatic partitioningabstractSwift is a new, principled approach to building web applications that are secure by construction. In modern web applications, some application functionality is usually implemented as client-side code written in JavaScript. Moving code and data to the client can create security vulnerabilities, but currently there are no good methods for deciding when it is secure to do so. Swift automatically partitions application code while providing assurance that the resulting placement is secure and efficient. Application code is written as Java-like code annotated with information flow policies that specify the confidentiality and integrity of web application information. The compiler uses these policies to automatically partition the program into JavaScript code running in the browser, and Java code running on the server. To improve interactive performance, code and data are placed on the client side. However, security-critical code and data are always placed on the server. Code and data can also be replicated across the client and server, to obtain both security and performance. A max-flow algorithm is used to place code and data in a way that minimizes client-server communication. Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi 0012, K. Vikram, Lantian Zheng |
SOSP | 4 |
| 2007 | A unified platform for data driven web applications with automatic client-server partitioningabstractData-driven web applications are usually structured in three tiers with different programming models at each tier. This division forces developers to manually partition application functionality across the tiers, resulting in complex logic, suboptimal partitioning, and expensive re-partitioning of applications. In this paper, we introduce a unified platform for automatic partitioning of data-driven web applications. Our approach is based on Hilda[41, 46], a high-level declarative programming language with a unified data and programming model for all the layers of the application. Based on run-time properties of the application, Hilda's run time system automatically partitions the application between the tiers to improve response time while adhering to memory and/ or processing constraints at the clients. We evaluate our methodology with traces from a real application and with TPC-W, and our results show that automatic partitioning outperforms manual partitioning without the associated development overhead. Fan Yang 0002, Nitin Gupta 0003, Nicholas Gerner, Xin Qi 0012, Alan J. Demers, Johannes Gehrke, Jayavel Shanmugasundaram |
WWW | 4 |
| 2006 | J&: nested intersection for scalable software compositionabstractThis paper introduces a programming language that makes it convenient to compose large software systems, combining their features in a modular way. J& supports nested intersection, building on earlier work on nested inheritance in the language Jx. Nested inheritance permits modular, type-safe extension of a package (including nested packages and classes), while preserving existing type relationships. Nested intersection enables composition and extension of two or more packages, combining their types and behavior while resolving conflicts with a relatively small amount of code. The utility of J& is demonstrated by using it to construct two composable, extensible frameworks: a compiler framework for Java, and a peer-to-peer networking system. Both frameworks support composition of extensions. For example, two compilers adding different, domain-specific features to Java can be composed to obtain a compiler for a language that supports both sets of features. Nathaniel Nystrom, Xin Qi 0012, Andrew C. Myers |
OOPSLA | 2 |