# Synteza programów

EN: **Program synthesis and inductive programming** · id `programsynthesis` · aliases: program synthesis, synteza programów, inductive programming, programowanie indukcyjne, automatic programming, automatyczne programowanie

Path: [AI Atlas](https://aiatlasgraph.com/llms.txt) › [Fundamenty i rozumowanie](https://aiatlasgraph.com/t/foundations.md) › Synteza programów

## Description

- PL: Automatyczne znajdowanie programu w danym języku spełniającego specyfikację użytkownika: przykłady, formułę logiczną, szkic lub opis naturalny.
- EN: Automatically finding a program in a given language that meets a user specification: examples, a logical formula, a sketch or natural language.

## In one sentence

- PL: Automatyczne tworzenie działającego programu na podstawie tego, co ma robić: przykładów, opisu albo formalnej specyfikacji.
- EN: Automatically creating a working program from what it should do: examples, a description or a formal specification.

## Problem it solves

- PL: Wiele osób wie, jaki efekt chce osiągnąć, ale nie umie albo nie ma czasu napisać kodu, który to zrobi.
- EN: Many people know the result they want but cannot, or have no time to, write the code that achieves it.

## What it does

- PL: Przeszukuje ogromną przestrzeń możliwych programów jak śledczy zawężający listę podejrzanych, aż zostanie ten zgodny ze wszystkimi wymaganiami.
- EN: Searches a huge space of possible programs like an investigator narrowing a suspect list until one meets every requirement.

## Everyday example

- PL: Pokazujesz arkuszowi dwa przykłady przerobienia imienia i nazwiska na inicjały, a on sam uzupełnia pozostałe tysiąc wierszy.
- EN: You show a spreadsheet two examples of turning full names into initials, and it fills in the remaining thousand rows itself.

## This concerns you if you…

- PL: powtarzasz żmudne przekształcenia danych
- PL: ciekawi cię, skąd AI bierze kod, który pisze
- PL: chcesz wiedzieć, jak maszyny uczą się z kilku przykładów
- EN: repeat tedious data transformations
- EN: wonder where AI gets the code it writes
- EN: want to know how machines learn from a few examples

## Keywords

programming by example · syntax-guided synthesis · CEGIS · inductive logic programming · DreamCoder · FlashFill · Sketch · enumerative synthesis · neural program synthesis · ARC-AGI · LLM code generation · Rosette

## How it works

- PL: Problem ma trzy wymiary: sposób wyrażenia intencji, przestrzeń programów (zwykle język dziedzinowy) i technikę przeszukiwania. Stosuje się enumerację, rozwiązywanie ograniczeń solwerami SMT, przeszukiwanie stochastyczne i dedukcję; współcześnie modele językowe proponują kandydatów, a weryfikator lub testy je odsiewają.
- EN: The problem has three dimensions: how intent is expressed, the program space (usually a domain-specific language) and the search technique. Methods include enumeration, constraint solving with SMT solvers, stochastic search and deduction; today language models propose candidates and verifiers or tests filter them.

## Limits

- PL: Przestrzeń programów rośnie wykładniczo z ich długością, więc klasyczne metody radzą sobie z krótkimi programami. Przykłady są niejednoznaczne, a program zgodny ze specyfikacją nie musi robić tego, o co użytkownikowi naprawdę chodziło.
- EN: The program space grows exponentially with length, so classical methods handle short programs. Examples are ambiguous, and a program meeting the specification need not do what the user actually meant.

## Key terms

- PL: **specyfikacja**: Opis tego, co program ma robić, bez mówienia jak.
- PL: **język dziedzinowy (DSL)**: Mały język programowania zawężający, czego trzeba szukać.
- PL: **pętla CEGIS**: Zgadnij program, znajdź kontrprzykład, popraw, powtórz.
- EN: **specification**: A description of what the program must do, not how.
- EN: **domain-specific language (DSL)**: A small programming language narrowing what must be searched.
- EN: **CEGIS loop**: Guess a program, find a counterexample, fix, repeat.

## Know first

- [Przeszukiwanie ślepe (BFS, DFS) (Uninformed search (BFS, DFS, uniform-cost))](https://aiatlasgraph.com/t/uninformedsearch.md)

## Subtopics (4 direct, 4 in total)

- [Indukcyjne programowanie logiczne (ILP) (Inductive logic programming (ILP))](https://aiatlasgraph.com/t/ilp.md): Machine learning that induces a hypothesis as a logic program from background knowledge and positive and negative examples.
- [Programowanie przez przykłady (Programming by example (PBE))](https://aiatlasgraph.com/t/pbe.md): Synthesising a program solely from input–output pairs, usually in a restricted DSL, with candidate ranking and user disambiguation.
- [Synteza sterowana gramatyką i solwerami (SyGuS) (Syntax-guided and solver-based synthesis (SyGuS))](https://aiatlasgraph.com/t/sygus.md): Synthesising a function satisfying a formula in a background theory (SMT) while expressible in a grammar; standardised by the SyGuS-IF format and SyGuS-Comp.
- [Uczenie bibliotek abstrakcji (Library learning: discovering reusable program abstractions)](https://aiatlasgraph.com/t/librarylearning.md): Program synthesis that, alongside solutions, learns new DSL primitives by refactoring fragments shared across found programs.

## Related topics

Untyped, symmetric "see also" links.

- [Agenci kodujący (AI-assisted coding)](https://aiatlasgraph.com/t/aicoding.md)

## Sources

- [Program Synthesis (Foundations and Trends in Programming Languages)](<https://www.microsoft.com/en-us/research/publication/program-synthesis/>) `gulwani-program-synthesis-2017` · by Sumit Gulwani, Oleksandr Polozov, Rishabh Singh
- [Inductive Logic Programming At 30: A New Introduction](<https://arxiv.org/abs/2008.07912>) `cropper-ilp-at-30-intro` · by Andrew Cropper, Sebastijan Dumančić
- [ARC Prize 2025: Technical Report](<https://arxiv.org/abs/2601.10904>) `arc-prize-2025-technical-report` · by François Chollet, Mike Knoop, Gregory Kamradt, Bryan Landers

---

AI Atlas revision 125 (2026-11-01) · HTML: https://aiatlasgraph.com/t/programsynthesis · index: https://aiatlasgraph.com/llms.txt · everything: https://aiatlasgraph.com/llms-full.txt · updated 2026-11-01
