# Low-Code Programming Models

**Authors:** Martin Hirzel  
**arXiv:** [2205.02282](https://arxiv.org/abs/2205.02282)  
**Date:** 2022-05-04  
**Summary page:** https://www.summarizepaper.com/en/arxiv-id/2205.02282v1/

## Key points

- Computer programming traditionally done by professional developers using textual programming languages like C, Java, or Python
- Low-code programming offers an alternative for citizen developers to create programs using visual abstractions, demonstrations, or natural language
- Low-code programming utilizes semantic parsers to translate natural language into an abstract syntax tree (AST) of a program
- SILT develops rule-based semantic parsers for coaching robotic soccer teams or querying geographic databases
- Overnight paper addresses obtaining aligned training data for semantic parsers through synthetic data generation and crowd-sourced paraphrasing
- Pumice tackles natural language ambiguity through dialogue interactions with users who can provide clarifications using either natural language or demonstrations
- Pre-trained large language models can be coerced into performing semantic parsing without fine-tuning
- Program synthesis involves searching a space of possible programs
- Desai et al. describe a meta-synthesizer that creates a synthesizer from natural language to programs in a domain-specific language (DSL)
- Yin and Neubig propose a deep learning-based semantic parser that encodes natural-language tokens into a Python AST
- Codex is a pre-trained large language model fine-tuned on code and aligned utterances and programs
- Comparison table of different low-code techniques based on their ability to write code visually, read code canvas activities, handle ambiguity etc.
- Low-code programming has the potential to empower individuals to automate tasks and be less reliant on professional software developers.

## Summary

Traditionally, computer programming has been the domain of professional developers using textual programming languages like C, Java, or Python. However, low-code programming offers an alternative by allowing citizen developers to create programs using visual abstractions, demonstrations, or natural language. This article aims to consolidate the existing low-code literature from various research fields and provide a unified perspective on how these techniques work. One aspect of low-code programming is the use of semantic parsers, which are machine-learning models that translate natural language into an abstract syntax tree (AST) of a program. For example, SILT develops rule-based semantic parsers for coaching robotic soccer teams or querying geographic databases. The Overnight paper addresses the challenge of obtaining aligned training data for semantic parsers through synthetic data generation and crowd-sourced paraphrasing. Pumice tackles natural language ambiguity through dialogue interactions with users who can provide clarifications using either natural language or demonstrations. Shin et al. demonstrate how pre-trained large language models can be coerced into performing semantic parsing without fine-tuning. Another approach to low-code programming is program synthesis, which involves searching a space of possible programs. Desai et al. describe a meta-synthesizer that creates a synthesizer from natural language to programs in a domain-specific language (DSL) given a DSL grammar and an aligned corpus. Yin and Neubig propose a deep learning-based semantic parser that encodes natural-language tokens into a Python AST. Codex is a pre-trained large language model that first undergoes unsupervised fine-tuning on code and then supervised fine-tuning on aligned utterances and programs. The article also presents a comparison table of different low-code techniques based on their ability to write code visually, read code canvas activities, handle ambiguity etc., providing insight into their respective strengths and weaknesses in terms of usability and scalability for different types of applications. Overall, low-code programming has the potential to empower more individuals to automate tasks by creating computer programs making them more productive and less reliant on professional software developers.
