While an integral part of all programming languages, the design of collection libraries is rarely studied. This work briefly reviews the collection libraries of 14 languages to identify possible design dimensions. Some languages have surprisingly few but versatile collections, while others have large libraries with many specialized collections. Based on the identified design dimensions, we argue that a small collection library with only a sequence, a map, and a set type are a suitable choice to facilitate exploratory programming. Such a design minimizes the number of decisions programmers have to make when dealing with collections, and it improves discoverability of collection operations. We further discuss techniques that make their implem...
Approaches for traditional programming language design center around theoretical and performance-ori...
offers a process for gradually integrating domain-specific languages into existing software systems,...
Large software systems are often constructed by reusing existing code. This dissertation describes ...
Collection data structures in standard libraries of programming languages are designed to excel for ...
Expandable collections are collections whose size may vary as elements are added and removed. Hash m...
This paper assesses the value of including extensibility as a feature of a programming language desi...
Abstract: "Several programming languages arising from widely varying practical and theoretical consi...
Modern programming languages such as Scala, Java and C# make extensive use of collections. A collect...
Functionality of software systems has exploded in part because of advances in programming-language s...
If we want software that can be adapted to our needs on the long run, extensibility is a main requir...
International audienceExploratory programming is a software development style in which code is a med...
Domain-specific languages (DSLs) are now ubiquitous. New DSLs are needed and existing DSLs are evolv...
Program synthesis is a promising area of research concerned with automatically producing program imp...
AbstractWe examine what is necessary to allow generic libraries to be used naturally in a multi-lang...
Functionality of software systems has exploded in part because of advances in programming language s...
Approaches for traditional programming language design center around theoretical and performance-ori...
offers a process for gradually integrating domain-specific languages into existing software systems,...
Large software systems are often constructed by reusing existing code. This dissertation describes ...
Collection data structures in standard libraries of programming languages are designed to excel for ...
Expandable collections are collections whose size may vary as elements are added and removed. Hash m...
This paper assesses the value of including extensibility as a feature of a programming language desi...
Abstract: "Several programming languages arising from widely varying practical and theoretical consi...
Modern programming languages such as Scala, Java and C# make extensive use of collections. A collect...
Functionality of software systems has exploded in part because of advances in programming-language s...
If we want software that can be adapted to our needs on the long run, extensibility is a main requir...
International audienceExploratory programming is a software development style in which code is a med...
Domain-specific languages (DSLs) are now ubiquitous. New DSLs are needed and existing DSLs are evolv...
Program synthesis is a promising area of research concerned with automatically producing program imp...
AbstractWe examine what is necessary to allow generic libraries to be used naturally in a multi-lang...
Functionality of software systems has exploded in part because of advances in programming language s...
Approaches for traditional programming language design center around theoretical and performance-ori...
offers a process for gradually integrating domain-specific languages into existing software systems,...
Large software systems are often constructed by reusing existing code. This dissertation describes ...