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

Karl Smeltzer

dblp:150/9954 · DBLP profile ↗
← Back
8ranked-venue papers
4as first author
1since 2021 · last 2021
—ORCID · none

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

Human-computer interaction and ubiquitous computing · 4 · 2 first-authorSoftware engineering, systems software and programming languages · 3 · 2 first-author · 1 since 2021Artificial intelligence and machine learning · 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
1 paper
Programming languages and type systems · 50% Program analysis · 50%

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

TopicWeightPapersLastEvidence papers
Program analysis
specification mining
0.512021
A type system for extracting functional specifications from memory-safe imperative programs · Proc. ACM Program. Lang. 2021
Programming languages and type systems
type systems
0.512021
A type system for extracting functional specifications from memory-safe imperative programs · Proc. ACM Program. Lang. 2021

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

separation logic · 0.5dynamic checks · 0.5
YearPublicationVenuePosition
2021 A type system for extracting functional specifications from memory-safe imperative programs
abstract
Verifying imperative programs is hard. A key difficulty is that the specification of what an imperative program does is often intertwined with details about pointers and imperative state. Although there are a number of powerful separation logics that allow the details of imperative state to be captured and managed, these details are complicated and reasoning about them requires significant time and expertise. In this paper, we take a different approach: a memory-safe type system that, as part of type-checking, extracts functional specifications from imperative programs. This disentangles imperative state, which is handled by the type system, from functional specifications, which can be verified without reference to pointers. A key difficulty is that sometimes memory safety depends crucially on the functional specification of a program; e.g., an array index is only memory-safe if the index is in bounds. To handle this case, our specification extraction inserts dynamic checks into the specification. Verification then requires the additional proof that none of these checks fail. However, these checks are in a purely functional language, and so this proof also requires no reasoning about pointers.
Paul He 0002, Eddy Westbrook, Brent Carmer, Chris Phifer, Valentin Robert, Karl Smeltzer, Andrei Stefanescu, Aaron Tomb, Adam Wick, Matthew Yacavone, Steve Zdancewic
Proc. ACM Program. Lang.6
2018 Variational Pictures
Martin Erwig, Karl Smeltzer
Diagrams2
2018 A domain-specific language for exploratory data visualization
abstract
With an ever-growing amount of collected data, the importance of visualization as an analysis component is growing in concert. The creation of good visualizations often doesn't happen in one step but is rather an iterative and exploratory process. However, this process is currently not well supported in most of the available visualization tools and systems. Visualization authors are forced to commit prematurely to particular design aspects of their creations, and when exploring potential variant visualizations, they are forced to adopt ad hoc techniques such as copying code snippets or keeping a collection of separate files.
Karl Smeltzer, Martin Erwig
GPCE1
2018 Comparative Visualizations through Parameterization and Variability
abstract
Comparative visualizations and the comparison tasks they support constitute a crucial part of visual data analysis on complex data sets. Existing approaches are ad hoc and often require significant effort to produce comparative visualizations, which is impractical especially in cases where visualizations have to be amended in response to changes in the underlying data. We show that the combination of parameterized visualizations and variations yields an effective model for comparative visualizations. Our approach supports data exploration and automatic visualization updates when the underlying data changes. We provide a prototype implementation and demonstrate that our approach covers most of existing comparative visualizations.
Karl Smeltzer, Martin Erwig
VL/HCC1
2014 A transformational approach to data visualization
abstract
Information visualization construction tools generally tend to fall in one of two disparate categories. Either they offer simple but inflexible visualization templates, or else they offer low-level graphical primitives which need to be assembled manually. Those that do offer flexible, domain-specific abstractions rarely focus on incrementally building and transforming visualizations, which could reduce limitations on the style of workflows supported. We present a Haskell-embedded DSL for data visualization that is designed to provide such abstractions and transformations. This DSL achieves additional expressiveness and flexibility through common functional programming idioms and the Haskell type class hierarchy.
Karl Smeltzer, Martin Erwig, Ronald A. Metoyer
GPCE1
2014 Let's hear both sides: On combining type-error reporting tools
abstract
Producing precise and helpful type error messages has been a challenge for the implementations of functional programming languages for over 3 decades now. Many different approaches and methods have been tried to solve this thorny problem, but current type-error reporting tools still suffer from a lack of precision in many cases. Based on the rather obvious observation that different approaches work well in different situations, we have studied the question of whether a combination of tools that exploits their diversity can lead to improved accuracy. Specifically, we have studied Helium, a Haskell implementation particularly aimed at producing good type error messages, and Lazy Typing, an approach developed previously by us to address the premature-error-commitment problem in type checkers. By analyzing the respective strengths and weaknesses of the two approaches we were able to identify a strategy to combine both tools that could markedly improve the accuracy of reported errors. Specifically, we report an evaluation of 1069 unique ill-typed programs out of a total of 11256 Haskell programs that reveals that this combination strategy enjoys a correctness rate of 79%, which is an improvement of 22%/17% compared to using Lazy Typing/Helium alone. In addition to describing this particular case study, we will also report insights we gained into the combination of error-reporting tools in general.
Sheng Chen 0008, Martin Erwig, Karl Smeltzer
VL/HCC3
2014 A notation for non-linear program edits
abstract
We present a visual notation to support the understanding and reasoning about program edits. The graph-based representation directly supports a number of editing operations beyond those offered by a typical, linear program-edit model and makes obvious otherwise hidden states the code can reach through selectively undoing or redoing changes.
Martin Erwig, Karl Smeltzer, Keying Xu
VL/HCC2
2014 A language for visualization variation and transformation
abstract
Improvements in computer technology have spawned an exponential growth in both the scope and volume of data collection, as well as a corresponding shortage of capable analysts. This applies not just to scientists, but also to consumers who are gaining unprecedented access to data from their cars, homes, phones, and other devices. Meanwhile, visualization has emerged as an effective tool for exploring and gathering insight from large quantities of data. However, constructing effective visualizations is often difficult, and current tools often lack either the flexibility to extend to custom problem domains or else require low-level graphics programming expertise to generate even simple visualizations. Furthermore, most solutions are ad hoc, preventing users from transforming and evolving visualizations, instead forcing them into a rigid, linear workflow. One possible approach to solving these problems is through the definition of a domain-specific language (DSL). This approach offers a number of potential advantages, the most immediate being flexibility. A visualization DSL could support multiple levels of abstraction at once, each of which could be targeted at different user needs and expertise levels. This, in turn, could allow users with varying levels of expertise to make use of the abstraction layers they find most appropriate, and support the creation of simple and common visualizations without sacrificing the option for more detailed control when necessary. This layering could also allow implementation details to be hidden when desired. Pixel position information, for example, could be hidden behind a scalable and unitless environment which would allow the user to place and size visualization components in relation to one another.
Karl Smeltzer
VL/HCC1