English
Related papers

Related papers: Library of Practical Abstractions, Release 1.2

200 papers

We present POLO --- a C++ library for large-scale parallel optimization research that emphasizes ease-of-use, flexibility and efficiency in algorithm design. It uses multiple inheritance and template programming to decompose algorithms into…

Optimization and Control · Mathematics 2018-10-09 Arda Aytekin , Martin Biel , Mikael Johansson

Heap data is potentially unbounded and seemingly arbitrary. As a consequence, unlike stack and static memory, heap memory cannot be abstracted directly in terms of a fixed set of source variable names appearing in the program being…

Programming Languages · Computer Science 2016-07-05 Vini Kanvar , Uday P. Khedker

Extending the lambda-calculus with a construct for sharing, such as let expressions, enables a special representation of terms: iterated applications are decomposed by introducing sharing points in between any two of them, reducing to the…

Logic in Computer Science · Computer Science 2019-07-16 Beniamino Accattoli , Andrea Condoluci , Giulio Guerrieri , Claudio Sacerdoti Coen

The prevalent use of third-party libraries (TPLs) in modern software development introduces significant security and compliance risks, necessitating the implementation of Software Composition Analysis (SCA) to manage these threats. However,…

Software Engineering · Computer Science 2025-03-31 Lyuye Zhang , Chengwei Liu , Jiahui Wu , Shiyang Zhang , Chengyue Liu , Zhengzi Xu , Sen Chen , Yang Liu

As applications grow in capability, they also grow in complexity. This complexity in turn gets pushed into modules and libraries. In addition, hardware configurations become increasingly elaborate, too. These two trends make understanding,…

Software Engineering · Computer Science 2018-03-21 Ronny Brendel , Bert Wesarg , Ronny Tschüter , Matthias Weber , Thomas Ilsche , Sebastian Oeste

While the utility of well-chosen abstractions for understanding and predicting the behaviour of complex systems is well appreciated, precisely what an abstraction $\textit{is}$ has so far has largely eluded mathematical formalization. In…

Artificial Intelligence · Computer Science 2021-06-29 Beren Millidge

Humans tame the complexity of mathematical reasoning by developing hierarchies of abstractions. With proper abstractions, solutions to hard problems can be expressed concisely, thus making them more likely to be found. In this paper, we…

Artificial Intelligence · Computer Science 2022-11-17 Zhening Li , Gabriel Poesia , Omar Costilla-Reyes , Noah Goodman , Armando Solar-Lezama

We describe a new C++ library for multiprecision arithmetic for numbers in the order of 100--500 bits, i.e., representable with just a few limbs. The library is written in "optimizing-compiler-friendly" C++, with an emphasis on the use of…

Cryptography and Security · Computer Science 2018-04-20 Niek J. Bouman

Software complexity has increased over the years. One common way to tackle this complexity during development is to encapsulate features into a shared library. This allows developers to reuse already implemented features instead of…

Cryptography and Security · Computer Science 2019-09-17 Nicolai Davidsson , Andre Pawlowski , Thorsten Holz

In this era of diverse and heterogeneous computer architectures, the programmability issues, such as productivity and portable efficiency, are crucial to software development and algorithm design. One way to approach the problem is to step…

Mathematical Software · Computer Science 2012-07-10 Mauro Bianco , Ugo Varetto

We propose a typesafe abstraction to tensors (i.e. multidimensional arrays) exploiting the type-level programming capabilities of Scala through heterogeneous lists (HList), and showcase typesafe abstractions of common tensor operations and…

Programming Languages · Computer Science 2017-10-20 Tongfei Chen

We introduce libdlr, a library implementing the recently introduced discrete Lehmann representation (DLR) of imaginary time Green's functions. The DLR basis consists of a collection of exponentials chosen by the interpolative decomposition…

Computational Physics · Physics 2023-07-31 Jason Kaye , Kun Chen , Hugo U. R. Strand

Data exploration is an important step of every data science and machine learning project, including those involving textual data. We provide a novel language tool, in the form of a publicly available Python library for extracting patterns…

Computation and Language · Computer Science 2022-06-20 Piyawat Lertvittayakumjorn , Leshem Choshen , Eyal Shnarch , Francesca Toni

Static program analysis is a valuable tool for any programming language that people write programs in. The prevalence of scripting languages in the world suggests programming language interpreters are relatively easy to write. Users of…

Programming Languages · Computer Science 2015-05-01 James Ian Johnson

We take a utility-based approach to categorization. We construct generalizations about events and actions by considering losses associated with failing to distinguish among detailed distinctions in a decision model. The utility-based…

Artificial Intelligence · Computer Science 2013-03-08 Eric J. Horvitz , Adrian Klein

This paper presents a novel set of algorithms for heap abstraction, identifying logically related regions of the heap. The targeted regions include objects that are part of the same component structure (recursive data structure). The result…

Logic in Computer Science · Computer Science 2012-12-21 Mohamed A. El-Zawawy

Disjunctive Logic Programming (DLP) is a very expressive formalism: it allows for expressing every property of finite structures that is decidable in the complexity class SigmaP2 (= NP^NP). Despite this high expressiveness, there are some…

Artificial Intelligence · Computer Science 2008-02-22 Wolfgang Faber , Gerald Pfeifer , Nicola Leone , Tina Dell'Armi , Giuseppe Ielpa

Almost all applications stop scaling at some point; those that don't are seldom performant when considering time to solution on anything but aspirational/unicorn resources. Recognizing these tradeoffs as well as greater user functionality…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-06-28 Stephen Hudson , Jeffrey Larson , John-Luke Navarro , Stefan M. Wild

Continuous testing during development is a well-established technique for software-quality assurance. Continuous model checking from revision to revision is not yet established as a standard practice, because the enormous resource…

Software Engineering · Computer Science 2013-05-30 Dirk Beyer , Stefan Löwe , Evgeny Novikov , Andreas Stahlbauer , Philipp Wendler

Modern architectures require applications to make effective use of caches to achieve high performance and hide memory latency. This in turn requires careful consideration of placement of data in memory to exploit spatial locality, leverage…

Programming Languages · Computer Science 2019-01-24 Juliana Franco , Alexandros Tasos , Sophia Drossopoulou , Tobias Wrigstad , Susan Eisenbach