A critical analysis of string APIs: The case of Pharo

11/29/2017
by   Damien Pollet, et al.
0

Most programming languages, besides C, provide a native abstraction for character strings, but string APIs vary widely in size, expressiveness, and subjective convenience across languages. In Pharo, while at first glance the API of the String class seems rich, it often feels cumbersome in practice; to improve its usability, we faced the challenge of assessing its design. However, we found hardly any guideline about design forces and how they structure the design space, and no comprehensive analysis of the expected string operations and their different variations. In this article, we first analyse the Pharo 4 String library, then contrast it with its Haskell, Java, Python, Ruby, and Rust counterparts. We harvest criteria to describe a string API, and reflect on features and design tensions. This analysis should help language designers in understanding the design space of strings, and will serve as a basis for a future redesign of the string library in Pharo.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/17/2018

An Automata-based Abstract Semantics for String Manipulation Languages

In recent years, dynamic languages, such as JavaScript or Python, have f...
research
04/27/2023

string2string: A Modern Python Library for String-to-String Algorithms

We introduce string2string, an open-source library that offers a compreh...
research
09/16/2023

Parallel Longest Common SubSequence Analysis In Chapel

One of the most critical problems in the field of string algorithms is t...
research
01/31/2020

A Survey on String Constraint Solving

String constraint solving refers to solving combinatorial problems invol...
research
11/02/2021

From Strings to Data Science: a Practical Framework for Automated String Handling

Many machine learning libraries require that string features be converte...
research
11/25/2021

On formally undecidable propositions in nondeterministic languages

Any class of languages 𝐋 accepted in time 𝐓 has a counterpart 𝐍𝐋 accepte...
research
07/14/2020

A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type

Strings are widely used in programs, especially in web applications. Int...

Please sign up or login with your details

Forgot password? Click here to reset