Matthias Zenger

dblp:15/4587 · DBLP profile ↗
← Back
8ranked-venue papers
3as first author
0since 2021 · last 2005
—ORCID · none

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

Software engineering, systems software and programming languages · 7 · 3 first-authorSystems, architecture and hardware · 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
2 papers
Programming languages and type systems · 100%

Topics — the 5 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › module systems
software composition
0.112005
Scalable component abstractions · OOPSLA 2005
Programming languages and type systems › type inference
local type inference
0.012001
Colored local type inference · POPL 2001
Programming languages and type systems › type systems
system f<:
0.012001
Colored local type inference · POPL 2001
Programming languages and type systems
type inference
0.012001
Colored local type inference · POPL 2001
Programming languages and type systems
type systems
0.012001
Colored local type inference · POPL 2001

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

selftypes · 0.1abstract type members · 0.1constraint solving · 0.0
YearPublicationVenuePosition
2005 Scalable component abstractions
abstract
We identify three programming language abstractions for the construction of re-usable components: abstract type members, explicit selftypes and symmetric mixin composition. Together, these abstractions enable us to transform an arbitrary assembly of static program parts with hard references between them into a system of re-usable components. The transformation maintains the structure of the original system. We demonstrate this approach in two case studies, a subject/observer framework and a compiler front-end.
Martin Odersky, Matthias Zenger
OOPSLA2
2005 Towards a taxonomy of software change
abstract
Abstract Previous taxonomies of software change have focused on the purpose of the change (i.e., the why) rather than the underlying mechanisms. This paper proposes a taxonomy of software change based on characterizing the mechanisms of change and the factors that influence these mechanisms. The ultimate goal of this taxonomy is to provide a framework that positions concrete tools, formalisms and methods within the domain of software evolution. Such a framework would considerably ease comparison between the various mechanisms of change. It would also allow practitioners to identify and evaluate the relevant tools, methods and formalisms for a particular change scenario. As an initial step towards this taxonomy, the paper presents a framework that can be used to characterize software change support tools and to identify the factors that impact on the use of these tools. The framework is evaluated by applying it to three different change support tools and by comparing these tools based on this analysis. Copyright © 2005 John Wiley & Sons, Ltd.
Jim Buckley, Tom Mens, Matthias Zenger, Awais Rashid, Günter Kniesel-Wünsche
J. Softw. Maintenance Res. Pract.3
2005 KERIS: evolving software with extensible modules
abstract
Abstract We present the programming language KERIS, an extension of Java with explicit support for software evolution. KERIS introduces extensible modules as the basic building blocks for software. Modules are composed hierarchically, explicitly revealing the architecture of systems. A distinct feature of the module design is that modules do not get linked manually. Instead, the wiring of modules gets inferred. The module assembly and refinement mechanism of KERIS is not restricted to the unanticipated extensibility of atomic modules. It also allows extensions of already linked systems by replacing selected submodules with compatible versions without needing to re‐link the full system. Extensibility is type‐safe and non‐invasive, i.e., the extension of a module preserves the original version and does not require access to source code. Copyright © 2005 John Wiley & Sons, Ltd.
Matthias Zenger
J. Softw. Maintenance Res. Pract.1
2003 A Nominal Theory of Objects with Dependent Types
Martin Odersky, Vincent Cremet, Christine Röckl, Matthias Zenger
ECOOP4
2002 Type-Safe Prototype-Based Component Evolution
Matthias Zenger
ECOOP1
2001 Extensible Algebraic Datatypes with Defaults
abstract
A major problem for writing extensible software arises when recursively defined datatypes and operations on these types have to be extended simultaneously without modifying existing code. This paper introduces Extensible Algebraic Datatypes with defaults, which promote a simple programming pattern to solve this well-known problem. We show that it is possible to encode extensible algebraic datatypes in an object-oriented language, using a new design pattern for extensible visitors. Extensible algebraic datatypes have been successfully applied in the implementation of an extensible Java compiler. Our technique allows for the reuse of existing components in compiler extensions without the need for any adaptations.
Matthias Zenger, Martin Odersky
ICFP1
2001 Colored local type inference
abstract
We present a type system for a language based on $F_\\leq$ , which allows certain type annotations to be elided in actual programs. Local type inference determines types by a combination of type propagation and local constraint solving, rather than by global constraint solving. We refine the previously existing local type inference system of Pierce and Turner[PT98] by allowing partial type information to be propagated. This is expressed by coloring types to indicate propagation directions. Propagating partial type information allows us to omit type annotations for the visitor pattern, the analogue of pattern matching in languages without sum types.
Martin Odersky, Christoph Zenger 0002, Matthias Zenger
POPL3
1997 JavaParty - Transparent Remote Objects in Java
abstract
Java's threads offer appropriate means either for parallel programming of SMPs or as target constructs when compiling add-on features (e.g. forall constructs, automatic parallelization, etc.) Unfortunately, Java does not provide elegant and straightforward mechanisms for parallel programming on distributed memory machines, like clusters of workstations. JavaParty transparently adds remote objects to Java purely by declaration while avoiding the disadvantages of explicit socket communication, the programming overhead of RMI and many disadvantages of the message-passing approach in general. JavaParty is specifically targeted towards, and implemented on, clusters of workstations. It hence combines Java-like programming and the concepts of distributed shared memory in heterogeneous networks. © 1997 John Wiley & Sons, Ltd.
Michael Philippsen, Matthias Zenger
Concurr. Pract. Exp.2