Inflationary Constant Factors and Why Python is Faster Than C++

11/23/2019
by   Mehrdad Niknami, et al.
0

Constant-factor differences are frequently ignored when analyzing the complexity of algorithms and implementations, as they appear to be insignificant in practice. In this paper, we demonstrate that this assumption can in fact have far more profound implications on time complexity than is obvious at first glance, and that a poor consideration of trade-offs can result in polynomially slower algorithms whose roots can be deeply and fundamentally ingrained into a programming language itself. While the general observation may not be novel from a theoretical standpoint, it is rarely (if ever) presented in traditional computer science curricula or other settings, and appears to be far from common knowledge in practical software engineering. We thus hope bring awareness to this issue and urge careful consideration of significant trade-offs that can result from trivial decisions made while programming.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/22/2020

Optimal Robustness-Consistency Trade-offs for Learning-Augmented Online Algorithms

We study the problem of improving the performance of online algorithms b...
research
07/04/2020

Regulating Accuracy-Efficiency Trade-Offs in Distributed Machine Learning Systems

In this paper we discuss the trade-off between accuracy and efficiency i...
research
01/28/2023

Navigating Complexity in Software Engineering: A Prototype for Comparing GPT-n Solutions

Navigating the diverse solution spaces of non-trivial software engineeri...
research
04/22/2019

Revisiting Multi-Step Nonlinearity Compensation with Machine Learning

For the efficient compensation of fiber nonlinearity, one of the guiding...
research
01/11/2021

The Slodderwetenschap (Sloppy Science) of Stochastic Parrots – A Plea for Science to NOT take the Route Advocated by Gebru and Bender

This article is a position paper written in reaction to the now-infamous...
research
09/05/2017

Abstractness, specificity, and complexity in software design

Abstraction is one of the fundamental concepts of software design. Conse...
research
05/06/2022

Bounded-degree plane geometric spanners in practice

The construction of bounded-degree plane geometric spanners has been a f...

Please sign up or login with your details

Forgot password? Click here to reset