Saltar al contenido
Nóesis
Todas las familias
F33Símbolos y reglasdesde 2013

Síntesis de programas

Inducir programas a partir de ejemplos

Dale a la máquina ejemplos de entrada/salida y deja que invente el programa. Flash Fill lo hizo cotidiano en las hojas de cálculo.

2013
año fundacional
1
laboratorio
2
ecuaciones
4
hitos citados
Ir al laboratorio en vivo
Lámina F33semitono de dos tintas · en vivo
§1

Intuición

Pensar es manipular representaciones explícitas.

Un DSL pequeño (concatenar, extraer dígitos, mayúsculas…) define el espacio de programas.

La búsqueda (enumeración, versión space, neuro-guiada) encuentra un programa consistente con los IO.

El laboratorio inventa transformaciones de strings a partir de ejemplos.

§2

Mecanismo

FlashFill (Gulwani): DSL de strings + síntesis por versión.

Neural-guided: un modelo propone candidatos; se verifican.

Program synthesis ∩ LLMs: Codex, AlphaCode, verification loops.

Ec. 33.1Síntesis por ejemplos
P∗=arg⁡min⁡P∈DSLcost(P) s.t. P(xi)=yiP^*=\arg\min_{P\in\mathrm{DSL}}\mathrm{cost}(P)\ \mathrm{s.t.}\ P(x_i)=y_i
Ec. 33.2Space de versiones
V=⋂i{P:P(xi)=yi}\mathcal{V}=\bigcap_i\{P:P(x_i)=y_i\}
§3

Laboratorio

Lab 33.1 calculado en tu navegadorDetectando…

Flash Fill de juguete

Da ejemplos IO de strings; el sintetizador busca en un DSL (extraer, concatenar, mayúsculas) un programa consistente.

§4

Historia

  1. 1971

    Summers y la síntesis inductiva temprana.

    Summers (1977)

  2. 2011

    FlashFill en Excel.

    Gulwani (2011), POPL

  3. 2017

    DeepCoder: guía neural de búsqueda.

    Balog et al.

  4. 2022

    AlphaCode compite en Codeforces.

    Li et al., Science

§5

Límites

1

El DSL acota lo expresable.

2

Ambigüedad: muchos programas caben en pocos ejemplos.

3

Verificar corrección general es indecidible.

§6 · Pregunta filosófica

¿Programar es especificar o ejemplificar?

Flash Fill apuesta por el ejemplo. Los tipos y contratos, por la especificación.

¿Qué entiende un modelo que escribe código que pasa los tests?

Familias conectadas