Home

Awesome

SemanticSqueak

Experiments for augmenting exploratory programming with generative AI tools in Squeak/Smalltalk.

This repository consists different research prototypes:

This work has led to the following writings (cite them):

Installation

Metacello new
	baseline: 'SemanticSqueak';
	repository: 'github://LinqLover/SemanticSqueak:main';
	get; "for updates"
	load.

Exploratory Programming Agent

<table> <tr> <td width="30%"> <p> <img src="./assets/agent-order.png"> </p> </td> <td width="70%"> <p> <img src="./assets/agent-text.png"> </p> </td> </tr> <tr> <td width="45%"> <p> <img src="./assets/agent-debugger.png"> </p> </td> <td width="80%"> <p> <img src="./assets/agent-browser.png"> </p> </td> </tr> </table>

Usage

Warning! Scientific prototype! Not yet ready for production! Read our paper for more current potential and limitations.

There are two ways to open an exploratory programming agent:

[!NOTE] For a somewhat usable accuracy of the agent, it is recommended to set the default model to GPT-4o (from the window menu of a ChatGPT window or the context menu of the chat field in an inspector).

[!WARNING] Watch your expenses! The exploratory agent consumes a lot of tokens, and especially with GPT-4o those are still expensive. A single question may cost between $0.10 and $0.50.

You can bring up an OpenAI expense watcher from the chat menu or track your usage online.

Implementation

Powered by SemanticText.

Citation

Onward! 2024 Paper

https://doi.org/10.1145/3689492.3690049

Christoph Thiede, Marcel Taeumel, Lukas Böhme, and Robert Hirschfeld. 2024. Talking to Objects in Natural Language: Toward Semantic Tools for Exploratory Programming. In Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! '24). Association for Computing Machinery, New York, NY, USA, 68–84. https://doi.org/10.1145/3689492.3690049

<details> <summary>BibTeX citation file</summary> <pre><code>@inproceedings{thiede2024talking, author = {Thiede, Christoph and Taeumel, Marcel and B\"{o}hme, Lukas and Hirschfeld, Robert}, title = {Talking to Objects in Natural Language: Toward Semantic Tools for Exploratory Programming}, year = {2024}, month = {10}, day = {25}, isbn = {979-840071215-9}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, doi = {10.1145/3689492.3690049}, abstract = {In 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 interpreted as abstract domain concepts, which then increases cognitive load and thus impedes exploration progress. We propose semantic object interfaces that bridge this gap by enabling contextual, natural-language conversations with objects. Our approach leverages an exploratory programming agent powered by a large language model (LLM) to translate natural-language questions into low-level experiments and provide high-level answers. We describe a framework for integrating semantic object interfaces into existing exploratory programming systems, including a prototype implementation in Squeak/Smalltalk using GPT-4o. We showcase the potential of semantic object interfaces through case studies and discuss their feasibility, limitations, and impact on the programming experience. While challenges remain, our approach promises to reduce mental effort and empower programmers to explore and understand systems at a higher level of abstraction for a better programming experience.}, booktitle = {Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software}, pages = {68–84}, numpages = {17}, keywords = {ChatGPT, LLMs, Smalltalk, conversational agents, exploratory programming, generative AI, natural-language programming, object-oriented programming, semantic tools}, location = {Pasadena, CA, USA}, series = {Onward! '24} }</code></pre> </details>

Master's thesis

Please go here.