VLDB 2026 Research / reviewers in the wild / expert
Kai Tan 0005
dblp:63/2156-5
· DBLP profile ↗
7ranked-venue papers
1as first author
0since 2021 · last 2009
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 5 · 1 first-authorSoftware engineering, systems software and programming languages · 2
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
2 papers |
Requirements engineering and software design · 86% Program synthesis and code generation · 14% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 100% |
Topics — the 4 heaviest of 6, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing
parallel programming models |
0.1 | 2 | 2009 | Deferring design pattern decisions and automating structural pattern changes using a design-pattern-based programming system · ACM Trans. Program. Lang. Syst. 2009 Using generative design patterns to generate parallel code for a distributed memory environment · PPoPP 2003 |
Requirements engineering and software design
design patterns |
0.1 | 2 | 2009 | Deferring design pattern decisions and automating structural pattern changes using a design-pattern-based programming system · ACM Trans. Program. Lang. Syst. 2009 Generative Design Patterns · ASE 2002 |
Requirements engineering and software design
software architecture |
0.1 | 1 | 2009 | Deferring design pattern decisions and automating structural pattern changes using a design-pattern-based programming system · ACM Trans. Program. Lang. Syst. 2009 |
Parallel and multicore computing › parallelizing compiler
parallel code generation |
0.0 | 1 | 2003 | Using generative design patterns to generate parallel code for a distributed memory environment · PPoPP 2003 |
Methods — techniques the papers use, named apart from their topics
code generation · 0.2pattern-based parallelization · 0.0pattern-based code generation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2009 | Deferring design pattern decisions and automating structural pattern changes using a design-pattern-based programming systemabstractIn the design phase of software development, the designer must make many fundamental design decisions concerning the architecture of the system. Incorrect decisions are relatively easy and inexpensive to fix if caught during the design process, but the difficulty and cost rise significantly if problems are not found until after coding begins. Unfortunately, it is not always possible to find incorrect design decisions during the design phase. To reduce the cost of expensive corrections, it would be useful to have the ability to defer some design decisions as long as possible, even into the coding stage. Failing that, tool support for automating design changes would give more freedom to revisit and change these decisions when needed. This article shows how a design-pattern-based programming system based on generative design patterns can support the deferral of design decisions where possible, and automate changes where necessary. A generative design pattern is a parameterized pattern form that is capable of generating code for different versions of the underlying design pattern. We demonstrate these ideas in the context of a parallel application written with the CO 2 P 3 S pattern-based parallel programming system. We show that CO 2 P 3 S can defer the choice of execution architecture (shared-memory or distributed-memory), and can automate several changes to the application structure that would normally be daunting to tackle late in the development cycle. Although we have done this work with a pattern-based parallel programming system, it can be generalized to other domains. Steve MacDonald, Kai Tan 0005, Jonathan Schaeffer 0001, Duane Szafron |
ACM Trans. Program. Lang. Syst. | 2 |
| 2005 | Asserting the utility of CO2P3S using the Cowichan Problem Set
John Anvik, Jonathan Schaeffer 0001, Duane Szafron, Kai Tan 0005 |
J. Parallel Distributed Comput. | 4 |
| 2003 | Why Not Use a Pattern-Based Parallel Programming System?
John Anvik, Jonathan Schaeffer 0001, Duane Szafron, Kai Tan 0005 |
Euro-Par | 4 |
| 2003 | Using generative design patterns to generate parallel code for a distributed memory environmentabstractA design pattern is a mechanism for encapsulating the knowledge of experienced designers into a re-usable artifact. Parallel design patterns reflect commonly occurring parallel communication and synchronization structures. Our tools, CO2P3S (Correct Object-Oriented Pattern-based Parallel Programming System) and MetaCO2P3S, use generative design patterns. A programmer selects the parallel design patterns that are appropriate for an application, and then adapts the patterns for that specific application by selecting from a small set of code-configuration options. CO2P3S then generates a custom framework for the application that includes all of the structural code necessary for the application to run in parallel. The programmer is only required to write simple code that launches the application and to fill in some application-specific sequential hook routines. We use generative design patterns to take an application specification (parallel design patterns + sequential user code) and use it to generate parallel application code that achieves good performance in shared memory and distributed memory environments. Although our implementations are for Java, the approach we describe is tool and language independent. This paper describes generalizing CO2P3S to generate distributed-memory parallel solutions. Kai Tan 0005, Duane Szafron, Jonathan Schaeffer 0001, John Anvik, Steve MacDonald |
PPoPP | 1 |
| 2002 | Pattern-Based Parallel ProgrammingabstractThe advantages of pattern-based programming have been well-documented in the sequential programming literature. However patterns have yet to make their way into mainstream parallel computing, even though several research tools support them. There are two critical shortcomings of pattern (or template) based systems for parallel programming: lack of extensibility and performance. This paper describes our approach for addressing these problems in the CO/sub 2/P/sub 3/S parallel programming system. CO/sub 2/P/sub 3/S supports multiple levels of abstraction, allowing the user to design an application with high-level patterns, but move to lower levels of abstraction for performance tuning. Patterns are implemented as parameterized templates, allowing the user the ability to customize the pattern to meet their needs. CO/sub 2/P/sub 3/S generates code that is specific to the pattern/parameter combination selected by the user. The MetaCO/sub 2/P/sub 3/S tool addresses extensibility by giving users the ability to design and add new pattern templates to CO/sub 2/P/sub 3/S. Since the pattern templates are stored in a system-independent format, they are suitable for storing in a repository to be shared throughout the user community. Steven Bromling, Steve MacDonald, John Anvik, Jonathan Schaeffer 0001, Duane Szafron, Kai Tan 0005 |
ICPP | 6 |
| 2002 | Generative Design PatternsabstractA design pattern encapsulates the knowledge of object-oriented designers into re-usable artifacts. A design pattern is a descriptive device that fosters software design re-use. There are several reasons why design patterns are not used as generative constructs that support code re-use. The first reason is that design patterns describe a set of solutions to a family of related design problems and it is difficult to generate a single body of code that adequately solves each problem in the family. A second reason is that it is difficult to construct and edit generative design patterns. A third major impediment is the lack of a tool-independent representation. A common representation could lead to a shared repository to make more patterns available. We describe a new approach to generative design patterns that solves these three difficult problems. We illustrate this approach using tools called CO/sub 2/P/sub 2/S and Meta-CO/sub 2/P/sub 2/S but our approach is tool-independent. Steve MacDonald, Duane Szafron, Jonathan Schaeffer 0001, John Anvik, Steven Bromling, Kai Tan 0005 |
ASE | 6 |
| 2002 | From patterns to frameworks to parallel programs
Steve MacDonald, John Anvik, Steven Bromling, Jonathan Schaeffer 0001, Duane Szafron, Kai Tan 0005 |
Parallel Comput. | 6 |