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.

Michael I. Schwartzbach

dblp:s/MichaelISchwartzbach · DBLP profile ↗
← Back
50ranked-venue papers
4as first author
0since 2021 · last 2012
—ORCID · none

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

Software engineering, systems software and programming languages · 29 · 1 first-authorTheory of computation · 14 · 3 first-authorDatabases, data management, data science and information retrieval · 6Computer networks · 2Applied, interdisciplinary, general and emerging computing · 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
14 papers
Programming languages and type systems · 48% Program analysis · 37% Program verification · 12%
Theoretical computer science
6 papers
Automata and formal languages · 51% Logic in computer science · 24% Automated reasoning and model checking · 21%

Topics — the 24 heaviest of 30, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.242007
Static validation of XSL transformations · ACM Trans. Program. Lang. Syst. 2007
Static Analysis of XML Transformations in Java · IEEE Trans. Software Eng. 2004
Extending Java for high-level Web service construction · ACM Trans. Program. Lang. Syst. 2003
Programming languages and type systems
type systems
0.132004
Static Analysis of XML Transformations in Java · IEEE Trans. Software Eng. 2004
A Type System for Dynamic Web Documents · POPL 2000
Graph Types · POPL 1993
Program analysis
schema validation
0.112007
Static validation of XSL transformations · ACM Trans. Program. Lang. Syst. 2007
Programming languages and type systems
type checking
0.112007
Static validation of XSL transformations · ACM Trans. Program. Lang. Syst. 2007
Programming languages and type systems
type inference
0.031995
Safety Analysis versus Type Inference · Inf. Comput. 1995
Efficient Inference of Partial Types · FOCS 1992
Object-Oriented Type Inference · OOPSLA 1991
Program analysis
flow analysis
0.012000
A Type System for Dynamic Web Documents · POPL 2000
Programming languages and type systems › type systems
type soundness
0.012000
A Type System for Dynamic Web Documents · POPL 2000
Programming languages and type systems
domain-specific languages
0.011999
A Domain-Specific Language for Regular Sets of Strings and Trees · IEEE Trans. Software Eng. 1999
Automata and formal languages
tree automata
0.011999
A Domain-Specific Language for Regular Sets of Strings and Trees · IEEE Trans. Software Eng. 1999
Logic in computer science
monadic second-order logic
0.022001
Graph Types · POPL 1993
The Pointer Assertion Logic Engine · PLDI 2001
Automata and formal languages
finite automata
0.021993
Efficient Recursive Subtyping · POPL 1993
Efficient Inference of Partial Types · FOCS 1992
Program verification
decision procedure
0.011997
Automatic Verification of Pointer Programs using Monadic Second-Order Logic · PLDI 1997
Program verification › program logic
hoare logic
0.011997
Automatic Verification of Pointer Programs using Monadic Second-Order Logic · PLDI 1997
Program verification
pointer program verification
0.011997
Automatic Verification of Pointer Programs using Monadic Second-Order Logic · PLDI 1997
Automated reasoning and model checking
decision procedures
0.011997
Automatic Verification of Pointer Programs using Monadic Second-Order Logic · PLDI 1997
Data models and query languages › XML data management
XML data model
0.012004
Static Analysis of XML Transformations in Java · IEEE Trans. Software Eng. 2004
Programming languages and type systems
language design
0.012003
Extending Java for high-level Web service construction · ACM Trans. Program. Lang. Syst. 2003
Programming languages and type systems › language design
language extension
0.012003
Extending Java for high-level Web service construction · ACM Trans. Program. Lang. Syst. 2003
Programming languages and type systems › type systems
graph types
0.011993
Graph Types · POPL 1993
Programming languages and type systems › type systems
recursive types
0.011993
Graph Types · POPL 1993
Programming languages and type systems › type inference
partial types
0.011992
Efficient Inference of Partial Types · FOCS 1992
Compilers and program optimization
compiler construction
0.011999
A Domain-Specific Language for Regular Sets of Strings and Trees · IEEE Trans. Software Eng. 1999
Authentication and access control › access control models
safety analysis
0.011995
Safety Analysis versus Type Inference · Inf. Comput. 1995
Compilers and program optimization
optimizing compiler
0.011991
Object-Oriented Type Inference · OOPSLA 1991

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

XPath · 0.1DTD schema typing · 0.1monadic second-order logic · 0.1XML graph formalism · 0.1monadic second-order logic encoding · 0.1loop invariant · 0.1function call invariant · 0.1flow analysis · 0.1type checking · 0.0program analysis · 0.0runtime implementation · 0.0unification · 0.0subtyping · 0.0hoare triples · 0.0second-order monadic logic · 0.0routing expressions · 0.0automata-theoretic approach · 0.0
YearPublicationVenuePosition
2012 WebSelF: A Web Scraping Framework
Jakob G. Thomsen, Erik Ernst, Claus Brabrand, Michael I. Schwartzbach
ICWE4
2011 Related Types
Johnni Winther, Michael I. Schwartzbach
ECOOP2
2011 XML graphs in program analysis
Anders Møller, Michael I. Schwartzbach
Sci. Comput. Program.2
2009 Information systems preface
Marcelo Arenas, Michael I. Schwartzbach
Inf. Syst.2
2008 Design Choices in a Compiler Course or How to Make Undergraduates Love Formal Notation
Michael I. Schwartzbach
CC1
2008 Dual syntax for XML languages
Claus Brabrand, Anders Møller, Michael I. Schwartzbach
Inf. Syst.3
2007 XML graphs in program analysis
abstract
XML graphs have shown to be a simple and effective formalism for representing sets of XML documents in program analysis. It has evolved through a six year period with variants tailored for a range of applications. We present a unified definition, outline the key properties including validation of XML graphs against different XML schema languages, and provide a software package that enables others to make use of these ideas. We also survey four very different applications: XML in Java, Java Servlets and JSP, transformations between XML and non-XML data, and XSLT.
Anders Møller, Michael I. Schwartzbach
PEPM2
2007 The metafront system: Safe and extensible parsing and transformation
Claus Brabrand, Michael I. Schwartzbach
Sci. Comput. Program.2
2007 Static validation of XSL transformations
abstract
XSL Transformations (XSLT) is a programming language for defining transformations among XML languages. The structure of these languages is formally described by schemas, for example using DTD or XML Schema, which allows individual documents to be validated. However, existing XSLT tools offer no static guarantees that, under the assumption that the input is valid relative to the input schema, the output of the transformation is valid relative to the output schema. We present a validation technique for XSLT based on the XML graph formalism introduced in the static analysis of JWIG Web services and X ACT XML transformations. Being able to provide static guarantees, we can detect a large class of errors in an XSLT stylesheet at the time it is written instead of later when it has been deployed, and thereby provide benefits similar to those of static type checkers for modern programming languages. Our analysis takes a pragmatic approach that focuses its precision on the essential language features but still handles the entire XSLT language. We evaluate the analysis precision on a range of real stylesheets and demonstrate how it may be useful in practice.
Anders Møller, Mads Østerby Olesen, Michael I. Schwartzbach
ACM Trans. Program. Lang. Syst.3
2006 Contracts for Cooperation between Web Service Programmers and HTML Designers
Henning Böttger, Anders Møller, Michael I. Schwartzbach
J. Web Eng.3
2005 The Design Space of Type Checkers for XML Transformation Languages
Anders Møller, Michael I. Schwartzbach
ICDT2
2004 Static Analysis of XML Transformations in Java
abstract
XML documents generated dynamically by programs are typically represented as text strings or DOM trees. This is a low-level approach for several reasons: 1) traversing and modifying such structures can be tedious and error prone, 2) although schema languages, e.g., DTD, allow classes of XML documents to be defined, there are generally no automatic mechanisms for statically checking that a program transforms from one class to another as intended. We introduce XACT, a high-level approach for Java using XML templates as a first-class data type with operations for manipulating XML values based on XPath. In addition to an efficient runtime representation, the data type permits static type checking using DTD schemas as types. By specifying schemes for the input and output of a program, our analysis algorithm will statically verify that valid input data is always transformed into valid output data and that the operations are used consistently.
Christian Kirkegaard, Anders Møller, Michael I. Schwartzbach
IEEE Trans. Software Eng.3
2003 Precise Analysis of String Expressions
Aske Simon Christensen, Anders Møller, Michael I. Schwartzbach
SAS3
2003 Extending Java for high-level Web service construction
abstract
We incorporate innovations from the project into the Java language to provide high-level features for Web service programming. The resulting language, JWIG, contains an advanced session model and a flexible mechanism for dynamic construction of XML documents, in particular XHTML. To support program development we provide a suite of program analyses that at compile time verify for a given program that no runtime errors can occur while building documents or receiving form input, and that all documents being shown are valid according to the document type definition for XHTML 1.0.We compare JWIG with Servlets and JSP which are widely used Web service development platforms. Our implementation and evaluation of JWIG indicate that the language extensions can simplify the program structure and that the analyses are sufficiently fast and precise to be practically useful.
Aske Simon Christensen, Anders Møller, Michael I. Schwartzbach
ACM Trans. Program. Lang. Syst.3
2002 Growing languages with metamorphic syntax macros
abstract
From now on, a main goal in designing a language should be to plan for growth." Guy Steele: Growing a Language, OOPSLA'98 invited talk. We present our experiences with a syntax macro language which we claim forms a general abstraction mechanism for growing (domain-specific) extensions of programming languages. Our syntax macro language is designed to guarantee type safety and termination. A concept of metamorphisms allows the arguments of a macro to be inductively defined in a meta level grammar and morphed into the host language. We also show how the metamorphisms can be made to operate simultaneously on multiple parse trees at once. The result is a highly flexible mechanism for growing new language constructs without resorting to compile-time programming. In fact, whole new languages can be defined at surprisingly low cost. This work is fully implemented as part of the system for defining interactive Web services, but could find use in many other languages. 1.
Claus Brabrand, Michael I. Schwartzbach
PEPM2
2002 The DSD Schema Language
Nils Klarlund, Anders Møller, Michael I. Schwartzbach
Autom. Softw. Eng.3
2002 The <bigwig> project
abstract
We present the results of the project, which aims to design and implement a high-level domain-specific language for programming interactive Web services. A fundamental aspect of the development of the World Wide Web during the last decade is the gradual change from static to dynamic generation of Web pages. Generating Web pages dynamically in dialog with the client has the advantage of providing up-to-date and tailor-made information. The development of systems for constructing such dynamic Web services has emerged as a whole new research area. The language is designed by analyzing its application domain and identifying fundamental aspects of Web services inspired by problems and solutions in existing Web service development languages. The core of the design consists of a session-centered service model together with a flexible template-based mechanism for dynamic Web page construction. Using specialized program analyses, certain Web-specific properties are verified at compile time, for instance that only valid HTML 4.01 is ever shown to the clients. In addition, the design provides high-level solutions to form field validation, caching of dynamic pages, and temporal-logic based concurrency control, and it proposes syntax macros for making highly domain-specific languages. The language is implemented via widely available Web technologies, such as Apache on the server-side and JavaScript and Java Applets on the client-side. We conclude with experience and evaluation of the project.
Claus Brabrand, Anders Møller, Michael I. Schwartzbach
ACM Trans. Internet Techn.3
2002 Language-Based Caching of Dynamiclly Generated HTML
Claus Brabrand, Anders Møller, Steffan Olesen, Michael I. Schwartzbach
World Wide Web4
2001 Static validation of dynamically generated HTML
abstract
We describe a static analysis of \bigwig\ programs that efficiently decides if all dynamically computed XHTML documents presented to the client will validate according to the official DTD. We employ two data-flow analyses to construct a graph summarizing the possible documents. This graph is subsequently analyzed to determine validity of those documents. By evaluating the technique on a number of realistic benchmarks, we demonstrate that it is sufficiently fast and precise to be practically useful.
Claus Brabrand, Anders Møller, Michael I. Schwartzbach
PASTE3
2001 The Pointer Assertion Logic Engine
abstract
We present a new framework for verifying partial specifications of programs in order to catch type and memory errors and check data structure invariants. Our technique can verify a large class of data structures, namely all those that can be expressed as graph types. Earlier versions were restricted to simple special cases such as lists or trees. Even so, our current implementation is as fast as the previous specialized tools. Programs are annotated with partial specifications expressed in Pointer Assertion Logic, a new notation for expressing properties of the program store. We work in the logical tradition by encoding the programs and partial specifications as formulas in monadic second-order logic. Validity of these formulas is checked by the MONA tool, which also can provide explicit counterexamples to invalid formulas. To make verification decidable, the technique requires explicit loop and function call invariants. In return, the technique is highly modular: every statement of a given program is analyzed only once. The main target applications are safety-critical data-type algorithms, where the cost of annotating a program with invariants is justified by the value of being able to automatically verify complex properties of the program.
Anders Møller, Michael I. Schwartzbach
PLDI2
2000 Compile-Time Debugging of C Programs Working on Trees
Jacob Elgaard, Anders Møller, Michael I. Schwartzbach
ESOP3
2000 A Type System for Dynamic Web Documents
abstract
Many interactive Web services use the CGI interface for communication with clients. They will dynamically create HTML documents that are presented to the client who then resumes the interaction by submitting data through incorporated form fields. This protocol is difficult to statically type-check if the dynamic documents are created by arbitrary script code using printf-like statements. Previous proposals have suggested using static document templates which trades flexibility for safety. We propose a notion of typed, higher-order templates that simultaneously achieve flexibility and safety. Our type system is based on a flow analysis of which we prove soundness. We present an efficient runtime implementation that respects the semantics of only well-typed programs. This work is fully implemented as part of the system for defining interactive Web services.
Anders Sandholm 0001, Michael I. Schwartzbach
POPL2
2000 MONA Implementation Secrets
Nils Klarlund, Anders Møller, Michael I. Schwartzbach
CIAA3
2000 PowerForms: Declarative client-side form field validation
Claus Brabrand, Anders Møller, Mikkel Ricky, Michael I. Schwartzbach
World Wide Web4
1999 Yakyak: parsing with logical side constraints
Nils Klarlund, Niels Damgaard, Michael I. Schwartzbach
Developments in Language Theory3
1999 A Runtime System for Interactive Web Services
Claus Brabrand, Anders Møller, Anders Sandholm 0001, Michael I. Schwartzbach
Comput. Networks4
1999 A Domain-Specific Language for Regular Sets of Strings and Trees
abstract
We propose a novel high level programming notation, called FIDO, that we have designed to concisely express regular sets of strings or trees. In particular, it can be viewed as a domain-specific language for the expression of finite state automata on large alphabets (of sometimes astronomical size). FIDO is based on a combination of mathematical logic and programming language concepts. This combination shares no similarities with usual logic programming languages. FIDO compiles into finite state string or tree automata, so there is no concept of run-time. It has already been applied to a variety of problems of considerable complexity and practical interest. We motivate the need for a language like FIDO, and discuss our design and its implementation. Also, we briefly discuss design criteria for domain-specific languages that we have learned from the work with FIDO. We show how recursive data types, unification, implicit coercions, and subtyping can be merged with a variation of predicate logic, called the Monadic Second-order Logic (M2L) on trees. FIDO is translated first into pure M2L via suitable encodings, and finally into finite state automata through the MONA tool.
Nils Klarlund, Michael I. Schwartzbach
IEEE Trans. Software Eng.2
1998 Distributed Safety Controllers for Web Services
Anders Sandholm 0001, Michael I. Schwartzbach
FASE2
1997 Automatic Verification of Pointer Programs using Monadic Second-Order Logic
abstract
We present a technique for automatic verification of pointer programs based on a decision procedure for the monadic second-order logic on finite strings.We are concerned with a while-fragment of Pascal, which includes recursively-defined pointer structures but excludes pointer arithmetic.We define a logic of stores with interesting basic predicates such as pointer equality, tests for nil pointers, and garbage cells, as well as reachability along pointers.We present a complete decision procedure for Hoare triples based on this logic over loop-free code. Combined with explicit loop invariants, the decision procedure allows us to answer surprisingly detailed questions about small but non-trivial programs. If a program fails to satisfy a certain property, then we can automatically supply an initial store that provides a counterexample.Our technique had been fully and efficiently implemented for linear linked lists, and it extends in principle to tree structures. The resulting system can be used to verify extensive properties of smaller pointer programs and could be particularly useful in a teaching environment.
Jakob L. Jensen, Michael E. Jørgensen, Nils Klarlund, Michael I. Schwartzbach
PLDI4
1996 Formal Design Constraints
abstract
Large software systems are often built on system platforms that support or enforce specific characteristics of the source code or actual design. These characteristics are either captured informally in design guideline documents or in specialized design and implementation languages.In our view, both approaches are unsatisfactory. Informal descriptions do not allow automated analysis and lead to vague constraint descriptions. The language-based approach leads to different languages for different platforms and even for different versions of the same basic platform.Our approach is to describe and name the constraints separately in a design constraint language called CDL, which is based on an extraordinarily concise logic of parse trees. Designs are then annotated with the names of the constraints they are supposed to satisfy.We discuss how the design constraint language is integrated into a design language environment. We exhibit industrial and experimental evidence that our choice of design constraint language allows us to formalize naturally and succinctly common design characteristics.
Nils Klarlund, Jari Koistinen, Michael I. Schwartzbach
OOPSLA3
1996 Foreword: Special Volume of TAPSOFT 1995 Papers
Peter D. Mosses, Mogens Nielsen, Michael I. Schwartzbach
Theor. Comput. Sci.3
1996 Static Correctness of Hierarchical Procedures
Michael I. Schwartzbach
Theor. Comput. Sci.1
1995 Safety Analysis versus Type Inference
Jens Palsberg, Michael I. Schwartzbach
Inf. Comput.2
1995 Efficient Recursive Subtyping
abstract
Subtyping in the presence of recursive types for the λ-calculus was studied by Amadio and Cardelli in 1991 (Amadio and Cardelli 1991). In that paper they showed that the problem of deciding whether one recursive type is a subtype of another is decidable in exponential time. In this paper we give an 0(n2) algorithm. Our algorithm is based on a simplification of the definition of the subtype relation, which allows us to reduce the problem to the emptiness problem for a certain finite automaton with quadratically many states. It is known that equality of recursive types and the covariant Bohm order can be decided efficiently by means of finite automata, since they are just language equality and language inclusion, respectively. Our results extend the automata-theoretic approach to handle orderings based on contravariance.
Dexter Kozen, Jens Palsberg, Michael I. Schwartzbach
Math. Struct. Comput. Sci.3
1995 Type Inference of SELF: Analysis of Objects with Dynamic and Multiple Inheritance
abstract
Abstract We have designed and implemented a type inference algorithm for the SELF language. The algorithm can guarantee the safety and disambiguity of message sends, and provide useful information for browsers and optimizing compilers. SELF features objects with dynamic inheritance. This construct has until now been considered incompatible with type inference because it allows the inheritance graph to change dynamically. Our algorithm handles this by deriving and solving type constraints that simultaneously define supersets of both the possible values of expressions and of the possible inheritance graphs. The apparent circularity is resolved by computing a global fixed‐point, in polynomial time. The algorithm has been implemented and can successfully handle the SELF benchmark programs, which exist in the ‘standard SELF world’ of more than 40,000 lines of code.
Ole Agesen, Jens Palsberg, Michael I. Schwartzbach
Softw. Pract. Exp.3
1994 Efficient Inference of Partial Types
Dexter Kozen, Jens Palsberg, Michael I. Schwartzbach
J. Comput. Syst. Sci.3
1994 Injectivity of Composite Functions
Kim S. Larsen, Michael I. Schwartzbach
J. Symb. Comput.2
1994 Static Typing for Object-Oriented Programming
Jens Palsberg, Michael I. Schwartzbach
Sci. Comput. Program.2
1993 Type Inference of SELF
Ole Agesen, Jens Palsberg, Michael I. Schwartzbach
ECOOP3
1993 Graph Types
abstract
Recursive data structures are abstractions of simple records and pointers. They impose a shape invariant, which is verified at compile-time and exploited to automatically generate code for building, copying, comparing, and traversing values without loss of efficiency. However, such values are always tree shaped, which is a major obstacle to practical use.We propose a notion of graph types, which allow common shapes, such as doubly-linked lists or threaded trees, to be expressed concisely and efficiently. We define regular languages of routing expressions to specify relative addresses of extra pointers in a canonical spanning tree. An efficient algorithm for computing such addresses is developed. We employ a second-order monadic logic to decide well-formedness of graph type specifications. This logic can also be used for automated reasoning about pointer structures.
Nils Klarlund, Michael I. Schwartzbach
POPL2
1993 Efficient Recursive Subtyping
abstract
Subtyping in the presence of recursive types for the l-calculus was studied by Amadio and Cardelli in 1991 [1]. In that paper they showed that the problem of deciding whether one recursive type is a sub-type of another is decidable in exponential time.In this paper we give an O(n2) algorithm. Our algorithm is based on a simplification of the definition of the subtype relation, which allows us to reduce the problem to the emptiness problem for a certain finite automaton with quadratically many states.It is known that equality of recursive types and the covariant Bo¨hm order can be decided efficiently by means of finite automata. Our results extend the automata-theoretic approach to handle orderings based on contravariance.
Dexter Kozen, Jens Palsberg, Michael I. Schwartzbach
POPL3
1992 Making Type Inference Practical
Nicholas Oxhøj, Jens Palsberg, Michael I. Schwartzbach
ECOOP3
1992 Efficient Inference of Partial Types
abstract
Partial types for the lambda -calculus were introduced by Thatte (1988) as a means of typing objects that are not typable with simple types, such as heterogeneous lists and persistent data. He showed that type inference for partial types was semidecidable. Decidability remained open until O'Keefe and Wand gave an exponential time algorithm for type inference. The authors give an O(n/sup 3/) algorithm. The algorithm constructs a certain finite automaton that represents a canonical solution to a given set of type constraints. Moreover, the construction works equally well for recursive types.>
Dexter Kozen, Jens Palsberg, Michael I. Schwartzbach
FOCS3
1992 A New Formalism for Relational Algebra
Kim S. Larsen, Michael I. Schwartzbach, Erik Meineche Schmidt
Inf. Process. Lett.2
1992 Safety Analysis Versus Type Inference for Partial Types
Jens Palsberg, Michael I. Schwartzbach
Inf. Process. Lett.2
1992 Interpretations of Recursively Defined Types
Michael I. Schwartzbach
Theor. Comput. Sci.1
1991 What is Type-Safe Code Reuse?
Jens Palsberg, Michael I. Schwartzbach
ECOOP2
1991 Object-Oriented Type Inference
abstract
We present a new approach to inferring types in untyped object-oriented programs with inheritance, assignments, and late binding.It guarantees that all messages are understood, annotates the program with type information, allows polymorphic methods, and can be used as the basis of an optimizing compiler.Types are finite sets of classes and subtyping is set inclusion.Using a trace graph, our algorithm constructs a set of conditional type constraints and computes the least solution by least fixed-point derivation.
Jens Palsberg, Michael I. Schwartzbach
OOPSLA2
1990 Static Correctness of Hierarchical Procedures
Michael I. Schwartzbach
ICALP1
1989 An Imperative Type Hierarchy with Partial Products
Erik Meineche Schmidt, Michael I. Schwartzbach
MFCS2