Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleOctober 2024
Talking to Objects in Natural Language: Toward Semantic Tools for Exploratory Programming
Onward! '24: Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and SoftwarePages 68–84https://doi.org/10.1145/3689492.3690049In exploratory programming, programmers often face a semantic gap between their high-level understanding and the low-level interfaces available for interacting with objects in a system. That is, technical object structure and behavior need to be ...
- research-articleJuly 2024
Unanticipated Progress Indication: Continuous Responsiveness for Courageous Exploration
Programming '24: Companion Proceedings of the 8th International Conference on the Art, Science, and Engineering of ProgrammingPages 80–86https://doi.org/10.1145/3660829.3660843Scripting environments support exploration from smaller programs to larger systems. From original Smalltalk workspaces to modern Python notebooks, such tool support is known to foster understanding. However, programmers struggle with unforeseen effects ...
- short-paperJuly 2024
Tinyrossa: A Compiler Framework for Vertical, Verified Construction of Smalltalk VMs
Programming '24: Companion Proceedings of the 8th International Conference on the Art, Science, and Engineering of ProgrammingPages 43–46https://doi.org/10.1145/3660829.3660838This talk presents Tinyrossa, an experimental JIT– and AoT–compilation framework which is part of our larger “Smalltalk-25” program of research towards constructing dynamic-language VMs using formal methods.
As far as compilation per se, Tinyrossa does ...
- research-articleOctober 2023
Transpiling Slang Methods to C Functions: An Example of Static Polymorphism for Smalltalk VM Objects
VMIL 2023: Proceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate LanguagesPages 88–93https://doi.org/10.1145/3623507.3623548The OpenSmalltalk-VM is written in a subset of Smalltalk which gets transpiled to C. Developing the VM in Smalltalk allows to use the Smalltalk developer tooling and brings a fast feedback cycle. However, transpiling to C requires mapping ...
- research-articleOctober 2023
Time-Awareness in Object Exploration Tools: Toward In Situ Omniscient Debugging
Onward! 2023: Proceedings of the 2023 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and SoftwarePages 89–102https://doi.org/10.1145/3622758.3622892Exploration of state and behavior is essential for understanding and debugging object-oriented programs. Many time-related questions about object communication – an object’s history – only arise in the context of a specific error in the here and now. ...
-
- research-articleSeptember 2023
Resurrecting Score11 in Siren: What Ever Happened to the 1980s Score Languages?
Programming '23: Companion Proceedings of the 7th International Conference on the Art, Science, and Engineering of ProgrammingPages 84–88https://doi.org/10.1145/3594671.3594683This paper describes a “software archaeology” project in which a new interpreter was created for the Score11 music representation, a popular 1980s music input language that was frequently used with the Music11 non-real-time software sound synthesis ...
- research-articleSeptember 2023
Object-Centric Time-Travel Debugging: Exploring Traces of Objects
Programming '23: Companion Proceedings of the 7th International Conference on the Art, Science, and Engineering of ProgrammingPages 54–60https://doi.org/10.1145/3594671.3594678Traditional behavior-centric debuggers are organized around an extensive call stack, making it hard for programmers to navigate and explore large programs. We present object traces, a novel, object-centric approach to time-travel debugging that enables ...
- research-articleDecember 2022
Relentless Repairability or Reckless Reuse: Whether or Not to Rebuild a Concern with Your Familiar Tools and Materials
Onward! 2022: Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and SoftwarePages 185–194https://doi.org/10.1145/3563835.3568733We must retain liveness and exploratory practices within the programming systems that make us feel most productive. However, the temptation to just reuse black boxes through limited interfaces is pervasive. We expect time savings and better performance ...
- research-articleJuly 2020
Personal programming and the object computer
Software and Systems Modeling (SoSyM) (SPSSM), Volume 19, Issue 4Pages 787–824https://doi.org/10.1007/s10270-019-00768-3AbstractMy objective is to create an intuitive computer for laypeople who want to go beyond ready-made apps and create programs to control their electronic environment. I submit Loke, a new kind of computer that is a universe of objects and nothing but ...
- research-articleJune 2020
The evolution of Smalltalk: from Smalltalk-72 through Squeak
Proceedings of the ACM on Programming Languages (PACMPL), Volume 4, Issue HOPLArticle No.: 85, Pages 1–101https://doi.org/10.1145/3386335This paper presents a personal view of the evolution of six generations of Smalltalk in which the author played a part, starting with Smalltalk-72 and progressing through Smalltalk-80 to Squeak and Etoys. It describes the forces that brought each ...
- research-articleJune 2020
The origins of Objective-C at PPI/Stepstone and its evolution at NeXT
Proceedings of the ACM on Programming Languages (PACMPL), Volume 4, Issue HOPLArticle No.: 82, Pages 1–74https://doi.org/10.1145/3386332The roots of Objective-C began at ITT in the early 1980s in a research group led by Tom Love investigating improving programmer productivity by an order of magnitude, a concern motivated by the perceived "software crisis" articulated in the late 1960s. ...
- short-paperAugust 2020
N-gram models for code completion in Pharo
Programming '20: Companion Proceedings of the 4th International Conference on Art, Science, and Engineering of ProgrammingPages 227–228https://doi.org/10.1145/3397537.3398483In this paper, I present applying statistical language models to improve code completion in Pharo. In particular, the goal is to use n-gram models for sorting the completion candidates and, in such a way, increase the relevancy of the suggested ...
- extended-abstractApril 2019
Reading logic as code or as natural language text: a randomized controlled trial experiment on the comprehensibility of object-oriented source code in comparison to natural language text
Programming '19: Companion Proceedings of the 3rd International Conference on the Art, Science, and Engineering of ProgrammingArticle No.: 30, Pages 1–3https://doi.org/10.1145/3328433.3328464Creating useful software systems requires a solid understanding of the application domain of the system [1, 9]. Software development teams thus often communicate with domain experts to elicit domain knowledge and requirements for the system [4]. To ...
- research-articleSeptember 2018
A feature-oriented model-driven engineering approach for the early validation of feature-based applications
Science of Computer Programming (SCPR), Volume 161, Issue CPages 18–33https://doi.org/10.1016/j.scico.2018.01.001AbstractThe software industry has to offer increasingly individualized software for a large number of platforms. In a constantly evolving technical context, the appropriateness and the profitableness of a software has to be ensured earlier, ...
Highlights- An approach for prototyping, executing and debugging models of feature-based applications within the modelling environment.
- research-articleSeptember 2018
Improving live debugging of concurrent threads through thread histories
Science of Computer Programming (SCPR), Volume 161, Issue CPages 122–148https://doi.org/10.1016/j.scico.2017.10.005Highlights- We present an analysis of existing debugging support for concurrent programs.
- ...
Concurrency issues are inherently harder to identify and fix than issues in sequential programs, due to aspects like indeterminate order of access to shared resources and thread synchronisation. Live debuggers are often used by ...
- research-articleJuly 2018
GraalSqueak: A Fast Smalltalk Bytecode Interpreter Written in an AST Interpreter Framework
ICOOOLPS '18: Proceedings of the 13th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and SystemsPages 30–35https://doi.org/10.1145/3242947.3242948Language implementation frameworks aim to provide everything that is needed to build interpreters, simplify the process by making certain design decisions in advance, and suggest implementation strategies to virtual machine creators. Truffle, the ...
- research-articleApril 2018
The exploration workspace: interleaving the implementation and use of plain objects in smalltalk
Programming '18: Companion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of ProgrammingPages 113–116https://doi.org/10.1145/3191697.3214339When engaging in exploratory programming, the activities of exploring, understanding, implementing, and using objects of a particular domain should ideally be tightly interwoven to allow for short feedback cycles and continuous progress towards desired ...
- research-articleApril 2018
Critique of ‘files as directories: some thoughts on accessing structured data within files’ (2)
Programming '18: Companion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of ProgrammingPages 175–179https://doi.org/10.1145/3191697.3214325In this critique I argue that the motivations and direction of the `files as directories' idea are sound, but the conceptual difficulties are considerable yet non-obvious, and are not limited to those identified by the author. I highlight a selection of ...
- research-articleSeptember 2017
Design Heuristics for Reliable and Flexible Virtual Machine Subsystems
IWST '17: Proceedings of the 12th edition of the International Workshop on Smalltalk TechnologiesArticle No.: 15, Pages 1–7https://doi.org/10.1145/3139903.3139921This paper describes the process of designing a logging subsystem for a Smalltalk virtual machine written in C to illustrate a software design methodology focused on promoting reliability and flexibility. The design approach begins with identifying ...
- research-articleApril 2017
Squeak Makes a Good Python Debugger: Bringing Other Programming Languages Into Smalltalk's Tools
Programming '17: Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of ProgrammingArticle No.: 27, Pages 1–8https://doi.org/10.1145/3079368.3079402Interactive debuggers are indispensable in many software development scenarios. However, they are often hard to extend and more importantly, their capabilities are limited to an application programming interface (API) provided by the runtime executing ...