Úlfar Erlingsson

dblp:e/UErlingsson · DBLP profile ↗
← Back
31ranked-venue papers
11as first author
2since 2021 · last 2021
—ORCID · none

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

Security and privacy · 15 · 4 first-author · 1 since 2021Software engineering, systems software and programming languages · 8 · 3 first-authorArtificial intelligence and machine learning · 3 · 1 since 2021Theory of computation · 3 · 3 first-authorSystems, architecture and hardware · 2 · 1 first-authorComputer networks · 1Databases, data management, data science and information retrieval · 1 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021

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.

Network and information security
17 papers
Privacy and data protection · 59% Systems and software security · 14% Security and privacy of machine learning · 13%
Artificial intelligence
3 papers
Trustworthy machine learning · 39% Deep learning architectures and training · 19% Language models and text generation · 19%
Software engineering, system software, and programming languages
10 papers
Program analysis · 39% Compilers and program optimization · 20% Operating systems · 16%
Computer architecture, parallel and distributed computing, and storage systems
6 papers
Distributed systems · 53% Parallel and multicore computing · 28% Cloud and datacenter computing · 10%

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

TopicWeightPapersLastEvidence papers
Privacy and data protection
differential privacy
1.242019
Amplification by Shuffling: From Local to Central Differential Privacy via Anonymity · SODA 2019
Scalable Private Learning with PATE · ICLR 2018
Semi-supervised Knowledge Transfer for Deep Learning from Private Training Data · ICLR 2017
Security and privacy of machine learning › privacy attack
training data extraction
0.922021
Extracting Training Data from Large Language Models · USENIX Security Symposium 2021
The Secret Sharer: Evaluating and Testing Unintended Memorization in Neural Networks · USENIX Security Symposium 2019
Machine learning › Deep learning architectures and training › activation function
activation function design
0.512021
Tempered Sigmoid Activations for Deep Learning with Differential Privacy · AAAI 2021
Machine learning › Trustworthy machine learning › privacy
differentially private training
0.512021
Tempered Sigmoid Activations for Deep Learning with Differential Privacy · AAAI 2021
Natural language and speech › Language models and text generation › large language model › knowledge in language models › memorization
memorization in language models
0.512021
Extracting Training Data from Large Language Models · USENIX Security Symposium 2021
Machine learning › Trustworthy machine learning › privacy
privacy-preserving machine learning
0.512021
Tempered Sigmoid Activations for Deep Learning with Differential Privacy · AAAI 2021
Privacy and data protection › information leakage
data leakage
0.412019
The Secret Sharer: Evaluating and Testing Unintended Memorization in Neural Networks · USENIX Security Symposium 2019
Privacy and data protection › differential privacy
local differential privacy
0.412019
Amplification by Shuffling: From Local to Central Differential Privacy via Anonymity · SODA 2019
Privacy and data protection
mobile app privacy
0.412019
Reducing Permission Requests in Mobile Apps · Internet Measurement Conference 2019
Privacy and data protection › differential privacy
privacy amplification
0.412019
Amplification by Shuffling: From Local to Central Differential Privacy via Anonymity · SODA 2019
Privacy and data protection › differential privacy › differentially private deep learning
PATE
0.312018
Scalable Private Learning with PATE · ICLR 2018
Machine learning › Transfer learning and domain adaptation
knowledge transfer
0.312017
Semi-supervised Knowledge Transfer for Deep Learning from Private Training Data · ICLR 2017
Machine learning › Learning paradigms
semi-supervised learning
0.312017
Semi-supervised Knowledge Transfer for Deep Learning from Private Training Data · ICLR 2017
Privacy and data protection
privacy-preserving data analysis
0.312017
Prochlo: Strong Privacy for Analytics in the Crowd · SOSP 2017
Systems and software security › memory safety
control-flow integrity
0.222014
Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM · USENIX Security Symposium 2014
Control-flow integrity · CCS 2005
Systems and software security › language-based security
inlined reference monitors
0.222013
Strato: A Retargetable Framework for Low-Level Inlined-Reference Monitors · USENIX Security Symposium 2013
IRM Enforcement of Java Stack Inspection · S&P 2000
Authentication and access control
authorization
0.212014
Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud · NDSS 2014
Authentication and access control › authorization
decentralized authorization
0.212014
Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud · NDSS 2014
Systems and software security › memory safety › control-flow integrity
forward-edge control-flow integrity
0.212014
Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM · USENIX Security Symposium 2014
Privacy and data protection › privacy-preserving data analysis
privacy-preserving data collection
0.212014
RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response · CCS 2014
Privacy and data protection › differential privacy › local differential privacy
randomized response
0.212014
RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response · CCS 2014
Program analysis › dynamic analysis
dynamic instrumentation
0.112012
Fay: Extensible Distributed Tracing from Kernels to Clusters · ACM Trans. Comput. Syst. 2012
Operating systems › kernel instrumentation
kernel tracing
0.112012
Fay: Extensible Distributed Tracing from Kernels to Clusters · ACM Trans. Comput. Syst. 2012
Distributed systems › observability › distributed monitoring
distributed tracing
0.112012
Fay: Extensible Distributed Tracing from Kernels to Clusters · ACM Trans. Comput. Syst. 2012
Web and mobile security › web security
API security
0.112011
Automated Analysis of Security-Critical JavaScript APIs · IEEE Symposium on Security and Privacy 2011
Web and mobile security
javascript security
0.112011
Automated Analysis of Security-Critical JavaScript APIs · IEEE Symposium on Security and Privacy 2011
Systems and software security › operating system security
sandboxing
0.112011
Language-independent sandboxing of just-in-time compilation and self-modifying code · PLDI 2011
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation
0.112011
Language-independent sandboxing of just-in-time compilation and self-modifying code · PLDI 2011
Program analysis › dynamic analysis
program tracing
0.112011
Fay: extensible distributed tracing from kernels to clusters · SOSP 2011
Program analysis › dynamic analysis
runtime instrumentation
0.112011
Fay: extensible distributed tracing from kernels to clusters · SOSP 2011

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

shuffling · 1.0encoding · 0.6runtime instrumentation · 0.5tempered sigmoid activations · 0.5gradient clipping · 0.5differentially private SGD · 0.5permutation-invariant algorithm · 0.4permission analysis · 0.4membership inference · 0.4randomized response · 0.4differential privacy · 0.4query optimization · 0.3data-parallel processing · 0.3sandboxing · 0.2dynamic tracing · 0.2code generation · 0.2automated analysis · 0.2formal semantics · 0.1
YearPublicationVenuePosition
2021 Tempered Sigmoid Activations for Deep Learning with Differential Privacy
abstract
Because learning sometimes involves sensitive data, machine learning algorithms have been extended to offer differential privacy for training data. In practice, this has been mostly an afterthought, with privacy-preserving models obtained by re-running training with a different optimizer, but using the model architectures that already performed well in a non-privacy-preserving setting. This approach leads to less than ideal privacy/utility tradeoffs, as we show here. To improve these tradeoffs, prior work introduces variants of differential privacy that weaken the privacy guarantee proved to increase model utility. We show this is not necessary and instead propose that utility be improved by choosing activation functions designed explicitly for privacy-preserving training. A crucial operation in differentially private SGD is gradient clipping, which along with modifying the optimization path (at times resulting in not-optimizing a single objective function), may also introduce both significant bias and variance to the learning process. We empirically identify exploding gradients arising from ReLU may be one of the main sources of this. We demonstrate analytically and experimentally how a general family of bounded activation functions, the tempered sigmoids, consistently outperform the currently established choice: unbounded activation functions like ReLU. Using this paradigm, we achieve new state-of-the-art accuracy on MNIST, FashionMNIST, and CIFAR10 without any modification of the learning procedure fundamentals or differential privacy analysis. While the changes we make are simple in retrospect, the simplicity of our approach facilitates its implementation and adoption to meaningfully improve state-of-the-art machine learning while still providing strong guarantees in the original framework of differential privacy.
Nicolas Papernot, Abhradeep Thakurta, Shuang Song 0001, Steve Chien, Úlfar Erlingsson
AAAI5
2021 Extracting Training Data from Large Language Models
Nicholas Carlini, Florian Tramèr, Eric Wallace, Matthew Jagielski, Ariel Herbert-Voss, Katherine Lee, Adam Roberts, Tom B. Brown, Dawn Song, Úlfar Erlingsson, Alina Oprea, Colin Raffel
USENIX Security Symposium10
2019 Reducing Permission Requests in Mobile Apps
abstract
Users of mobile apps sometimes express discomfort or concerns with what they see as unnecessary or intrusive permission requests by certain apps. However encouraging mobile app developers to request fewer permissions is challenging because there are many reasons why permissions are requested; furthermore, prior work [25] has shown it is hard to disambiguate the purpose of a particular permission with high certainty.
Sai Teja Peddinti, Igor Bilogrevic, Nina Taft, Martin Pelikan, Úlfar Erlingsson, Pauline Anthonysamy, Giles Hogben
Internet Measurement Conference5
2019 Amplification by Shuffling: From Local to Central Differential Privacy via Anonymity
abstract
Sensitive statistics are often collected across sets of users, with repeated collection of reports done over time. For example, trends in users’ private preferences or software usage may be monitored via such reports. We study the collection of such statistics in the local differential privacy (LDP) model, and describe an algorithm whose privacy cost is polylogarithmic in the number of changes to a user's value. More fundamentally—by building on anonymity of the users’ reports—we also demonstrate how the privacy cost of our LDP algorithm can actually be much lower when viewed in the central model of differential privacy. We show, via a new and general privacy amplification technique, that any permutation-invariant algorithm satisfying ε-local differential privacy will satisfy -central differential privacy. By this, we explain how the high noise and overhead of LDP protocols is a consequence of them being significantly more private in the central model. As a practical corollary, our results imply that several LDP-based industrial deployments may have much lower privacy cost than their advertised ε would indicate—at least if reports are anonymized.
Úlfar Erlingsson, Vitaly Feldman, Ilya Mironov, Ananth Raghunathan, Kunal Talwar, Abhradeep Thakurta
SODA1
2019 The Secret Sharer: Evaluating and Testing Unintended Memorization in Neural Networks
Nicholas Carlini, Chang Liu 0021, Úlfar Erlingsson, Jernej Kos, Dawn Song
USENIX Security Symposium3
2018 Scalable Private Learning with PATE
Nicolas Papernot, Shuang Song 0001, Ilya Mironov, Ananth Raghunathan, Kunal Talwar, Úlfar Erlingsson
ICLR6
2017 On the Protection of Private Information in Machine Learning Systems: Two Recent Approches
abstract
The recent, remarkable growth of machine learning has led to intense interest in the privacy of the data on which machine learning relies, and to new techniques for preserving privacy. However, older ideas about privacy may well remain valid and useful. This note reviews two recent works on privacy in the light of the wisdom of some of the early literature, in particular the principles distilled by Saltzer and Schroeder in the 1970s.
Martín Abadi, Úlfar Erlingsson, Ian J. Goodfellow, H. Brendan McMahan, Ilya Mironov, Nicolas Papernot, Kunal Talwar, Li Zhang 0001
CSF2
2017 Semi-supervised Knowledge Transfer for Deep Learning from Private Training Data
Nicolas Papernot, Martín Abadi, Úlfar Erlingsson, Ian J. Goodfellow, Kunal Talwar
ICLR3
2017 Prochlo: Strong Privacy for Analytics in the Crowd
abstract
The large-scale monitoring of computer users' software activities has become commonplace, e.g., for application telemetry, error reporting, or demographic profiling. This paper describes a principled systems architecture---Encode, Shuffle, Analyze (ESA)---for performing such monitoring with high utility while also protecting user privacy. The ESA design, and its Prochlo implementation, are informed by our practical experiences with an existing, large deployment of privacy-preserving software monitoring.
Andrea Bittau, Úlfar Erlingsson, Petros Maniatis, Ilya Mironov, Ananth Raghunathan, David Lie, Mitch Rudominer, Ushasree Kode, Julien Tinnés, Bernhard Seefeld
SOSP2
2016 Data-Driven Software Security: Models and Methods
abstract
For computer software, our security models, policies, mechanisms, and means of assurance were primarily conceived and developed before the end of the 1970's. However, since that time, software has changed radically: it is thousands of times larger, comprises countless libraries, layers, and services, and is used for more purposes, in far more complex ways. It is worthwhile to revisit our core computer security concepts. This paper outlines what a data-driven model for software security could look like, and describes how the above three questions can be answered affirmatively. Specifically, this paper briefly describes methods for efficient, detailed software monitoring, as well as methods for learning detailed software statistics while providing differential privacy for its users, and, finally, how machine learning methods can help discover users expectations for intended software behavior, and thereby help set security policy. Those methods can be adopted in practice, even at very large scales, and demonstrate that data-driven software security models can provide real-world benefits.
Úlfar Erlingsson
CSF1
2016 Building a RAPPOR with the Unknown: Privacy-Preserving Learning of Associations and Data Dictionaries
abstract
Abstract Techniques based on randomized response enable the collection of potentially sensitive data from clients in a privacy-preserving manner with strong local differential privacy guarantees. A recent such technology, RAPPOR [12], enables estimation of the marginal frequencies of a set of strings via privacy-preserving crowdsourcing. However, this original estimation process relies on a known dictionary of possible strings; in practice, this dictionary can be extremely large and/or unknown. In this paper, we propose a novel decoding algorithm for the RAPPOR mechanism that enables the estimation of “unknown unknowns,” i.e., strings we do not know we should be estimating. To enable learning without explicit dictionary knowledge, we develop methodology for estimating the joint distribution of multiple variables collected with RAPPOR. Our contributions are not RAPPOR-specific, and can be generalized to other local differential privacy mechanisms for learning distributions of string-valued random variables.
Giulia Fanti, Vasyl Pihur, Úlfar Erlingsson
Proc. Priv. Enhancing Technol.3
2014 RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response
abstract
Randomized Aggregatable Privacy-Preserving Ordinal Response, or RAPPOR, is a technology for crowdsourcing statistics from end-user client software, anonymously, with strong privacy guarantees. In short, RAPPORs allow the forest of client data to be studied, without permitting the possibility of looking at individual trees. By applying randomized response in a novel manner, RAPPOR provides the mechanisms for such collection as well as for efficient, high-utility analysis of the collected data. In particular, RAPPOR permits statistics to be collected on the population of client-side strings with strong privacy guarantees for each client, and without linkability of their reports. This paper describes and motivates RAPPOR, details its differential-privacy and utility guarantees, discusses its practical deployment and properties in the face of different attack models, and, finally, gives results of its application to both synthetic and real-world data.
Úlfar Erlingsson, Vasyl Pihur, Aleksandra Korolova
CCS1
2014 Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud
Arnar Birgisson, Joe Gibbs Politz, Úlfar Erlingsson, Ankur Taly, Michael Vrable, Mark Lentczner
NDSS3
2014 Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM
Caroline Tice, Tom Roeder, Peter Collingbourne, Stephen Checkoway, Úlfar Erlingsson, Luis Lozano, Geoff Pike
USENIX Security Symposium5
2013 Strato: A Retargetable Framework for Low-Level Inlined-Reference Monitors
Bin Zeng 0004, Gang Tan, Úlfar Erlingsson
USENIX Security Symposium3
2012 Fay: Extensible Distributed Tracing from Kernels to Clusters
abstract
Fay is a flexible platform for the efficient collection, processing, and analysis of software execution traces. Fay provides dynamic tracing through use of runtime instrumentation and distributed aggregation within machines and across clusters. At the lowest level, Fay can be safely extended with new tracing primitives, including even untrusted, fully optimized machine code, and Fay can be applied to running user-mode or kernel-mode software without compromising system stability. At the highest level, Fay provides a unified, declarative means of specifying what events to trace, as well as the aggregation, processing, and analysis of those events. We have implemented the Fay tracing platform for Windows and integrated it with two powerful, expressive systems for distributed programming. Our implementation is easy to use, can be applied to unmodified production systems, and provides primitives that allow the overhead of tracing to be greatly reduced, compared to previous dynamic tracing platforms. To show the generality of Fay tracing, we reimplement, in experiments, a range of tracing strategies and several custom mechanisms from existing tracing frameworks. Fay shows that modern techniques for high-level querying and data-parallel processing of disagreggated data streams are well suited to comprehensive monitoring of software execution in distributed systems. Revisiting a lesson from the late 1960s [Deutsch and Grant 1971], Fay also demonstrates the efficiency and extensibility benefits of using safe, statically verified machine code as the basis for low-level execution tracing. Finally, Fay establishes that, by automatically deriving optimized query plans and code for safe extensions, the expressiveness and performance of high-level tracing queries can equal or even surpass that of specialized monitoring tools.
Úlfar Erlingsson, Marcus Peinado, Simon Peter 0001, Mihai Budiu, Gloria Mainar-Ruiz
ACM Trans. Comput. Syst.1
2011 Language-independent sandboxing of just-in-time compilation and self-modifying code
abstract
When dealing with dynamic, untrusted content, such as on the Web, software behavior must be sandboxed, typically through use of a language like JavaScript. However, even for such specially-designed languages, it is difficult to ensure the safety of highly-optimized, dynamic language runtimes which, for efficiency, rely on advanced techniques such as Just-In-Time (JIT) compilation, large libraries of native-code support routines, and intricate mechanisms for multi-threading and garbage collection. Each new runtime provides a new potential attack surface and this security risk raises a barrier to the adoption of new languages for creating untrusted content.
Jason Ansel, Petr Marchenko, Úlfar Erlingsson, Elijah Taylor, Brad Chen, Derek L. Schuff, David Sehr, Cliff Biffle, Bennet Yee
PLDI3
2011 Fay: extensible distributed tracing from kernels to clusters
abstract
Fay is a flexible platform for the efficient collection, processing, and analysis of software execution traces. Fay provides dynamic tracing through use of runtime instrumentation and distributed aggregation within machines and across clusters. At the lowest level, Fay can be safely extended with new tracing primitives, including even untrusted, fully-optimized machine code, and Fay can be applied to running user-mode or kernel-mode software without compromising system stability. At the highest level, Fay provides a unified, declarative means of specifying what events to trace, as well as the aggregation, processing, and analysis of those events.
Úlfar Erlingsson, Marcus Peinado, Simon Peter 0001, Mihai Budiu
SOSP1
2011 Automated Analysis of Security-Critical JavaScript APIs
abstract
JavaScript is widely used to provide client-side functionality in Web applications. To provide services ranging from maps to advertisements, Web applications may incorporate untrusted JavaScript code from third parties. The trusted portion of each application may then expose an API to untrusted code, interposing a reference monitor that mediates access to security-critical resources. However, a JavaScript reference monitor can only be effective if it cannot be circumvented through programming tricks or programming language idiosyncrasies. In order to verify complete mediation of critical resources for applications of interest, we define the semantics of a restricted version of JavaScript devised by the ECMA Standards committee for isolation purposes, and develop and test an automated tool that can soundly establish that a given API cannot be circumvented or subverted. Our tool reveals a previously-undiscovered vulnerability in the widely-examined Yahoo! AD Safe filter and verifies confinement of the repaired filter and other examples from the Object-Capability literature.
Ankur Taly, Úlfar Erlingsson, John C. Mitchell, Mark S. Miller, Jasvir Nagra
IEEE Symposium on Security and Privacy2
2009 Control-flow integrity principles, implementations, and applications
abstract
Current software attacks often build on exploits that subvert machine-code execution. The enforcement of a basic safety property, control-flow integrity (CFI), can prevent such attacks from arbitrarily controlling program behavior. CFI enforcement is simple and its guarantees can be established formally, even with respect to powerful adversaries. Moreover, CFI enforcement is practical: It is compatible with existing software and can be done efficiently using software rewriting in commodity systems. Finally, CFI provides a useful foundation for enforcing further security policies, as we demonstrate with efficient software implementations of a protected shadow call stack and of access control for memory regions.
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, Jay Ligatti
ACM Trans. Inf. Syst. Secur.3
2008 Enforcing authorization policies using transactional memory introspection
abstract
Correct enforcement of authorization policies is a difficult task, especially for multi-threaded software. Even in carefully-reviewed code, unauthorized access may be possible in subtle corner cases. We introduce Transactional Memory Introspection (TMI), a novel reference monitor architecture that builds on Software Transactional Memory--a new, attractive alternative for writing correct, multi-threaded software.
Arnar Birgisson, Mohan Dhawan, Úlfar Erlingsson, Vinod Ganapathy, Liviu Iftode
CCS3
2008 DryadLINQ: A System for General-Purpose Distributed Data-Parallel Computing Using a High-Level Language
Michael Isard, Dennis Fetterly, Mihai Budiu, Úlfar Erlingsson, Pradeep Kumar Gunda, Jon Currey
OSDI5
2007 End-to-End Web Application Security
Úlfar Erlingsson, Benjamin Livshits, Yinglian Xie
HotOS1
2006 XFI: Software Guards for System Address Spaces
Úlfar Erlingsson, Martín Abadi, Michael Vrable, Mihai Budiu, George C. Necula
OSDI1
2005 Control-flow integrity
abstract
Current software attacks often build on exploits that subvert machine-code execution. The enforcement of a basic safety property, Control-Flow Integrity (CFI), can prevent such attacks from arbitrarily controlling program behavior. CFI enforcement is simple, and its guarantees can be established formally even with respect to powerful adversaries. Moreover, CFI enforcement is practical: it is compatible with existing software and can be done efficiently using software rewriting in commodity systems. Finally, CFI provides a useful foundation for enforcing further security policies, as we demonstrate with efficient software implementations of a protected shadow call stack and of access control for memory regions.
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, Jay Ligatti
CCS3
2005 A Theory of Secure Control Flow
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, Jay Ligatti
ICFEM3
2000 Efficient and Flexible Value Sampling
abstract
This paper presents novel sampling-based techniques for collecting statistical profiles of register contents, data values, and other information associated with instructions, such as memory latencies. Values of interest are sampled in response to periodic interrupts. The resulting value profiles can be analyzed by programmers and optimizers to improve the performance of production uniprocessor and multiprocessor systems.Our value sampling system extends the DCPI continuous profiling infrastructure, and inherits many of its desirable properties: our value profiler has low overhead (approximately 10% slowdown); it profiles all the code in the system, including the operating system kernel; and it operates transparently, without requiring any modifications to the profiled code.
Michael Burrows, Úlfar Erlingsson, Shun-Tak Leung, Mark T. Vandevoorde, Carl A. Waldspurger, Kip Walker, William E. Weihl
ASPLOS2
2000 IRM Enforcement of Java Stack Inspection
abstract
Two implementations are given for Java's stack inspection access-control policy. Each implementation is obtained by generating an inlined reference monitor (IRM) for a different formulation of the policy. Performance of the implementations is evaluated, and one is found to be competitive with Java's less flexible, JVM-resident implementation. The exercise illustrates the power of the IRM approach for enforcing security policies.
Úlfar Erlingsson, Fred B. Schneider
S&P1
1999 SASI enforcement of security policies: a retrospective
abstract
SASI enforces security policies by modifying object code for a target system before that system is executed. The approach has been prototyped for two rather dieren t machine architectures: Intel x86 and Java JVML. Details of these prototypes and some generalizations about the SASI approach are discussed.
Úlfar Erlingsson, Fred B. Schneider
NSPW1
1996 Generic Gram-Schmidt Orthogonalization by Exact Division
abstract
Given a vector space basis with integral domain coefficients, a variant of the Gram-Schmidt process produces an orthogonal basis using exact divisions, so that all arithmetic is within the integral domain. Zero-division is avoided by the assumption that in the domain a sum of squares of nonzero elements is always nonzero. In this paper we fully develop this method and use it to illustrate and compare a variety of means for implementing generic algorithms. Previous generic programming methods have been limited to one of compile-time, link-time, or run-time instantiation of type parameters, such as the integral domain of this algorithm, but we show how to express generic algorithms in C+ + so that all three possibilities are available using a single source code. Finally, we take advantage of the genericness to test and time the algorithm using different arithmetics, including three huge-integer arithmetic packages. 1 Introduction Given a basis B = fb1 ; : : : ; bng for R n the Gram-S...
Úlfar Erlingsson, Erich L. Kaltofen, David R. Musser
ISSAC1
1996 Efficient Multiway Radix Search Trees
abstract
this paper discusses only its application to switch statements. There has been considerable work in the past ([2], [3], [5], [6] and [10]) on the Pascal case statement and code generation. The generation of code for switch statements is discussed in [4] and [11]. A scheme similar to MRST, but restricted to binary radix search trees, appears in [9]. Preprint submitted to Elsevier Preprint 8 August 1997 Applications for fast sparse switch statements are many and varied. Two examples are: -- Let L be a Common-Lisp-like language with dynamic type dispatch on function arguments. Let F be an n argument generic function in L, with
Úlfar Erlingsson, Mukkai S. Krishnamoorthy, T. V. Raman 0001
Inf. Process. Lett.1