Teoria pastei a programării are de-a face cu complexitatea diferitelor structuri de programare. Așa cum pastele vin în multe dimensiuni și forme diferite, același lucru este valabil și cu codul de programare. Cu o teorie a pastei, un anumit tip de paste este folosit ca o ilustrare colorată pentru a identifica unele aspecte asociate cu un anumit set de protocoale de programare.
Un exemplu excelent de teorie a programării pastei este codul spaghete. Spaghetele gătite sunt adesea servite ca o colecție de fire care se încrucișează și se împletesc unele cu altele. Este practic imposibil să extragi o șuviță de spaghete fără a provoca un anumit grad de perturbare celorlalte fire.
Cu acest tip de teorie a pastei, se înțelege că efortul de programare este oarecum întâmplător și haotic. Nu există nicio structură reală a codului de programare. Rezultatul final este că încercarea de a modifica codul asociat cu o porțiune a secvenței creează adesea probleme neprevăzute cu o altă parte a codului. Drept urmare, un cod spaghetti este extrem de greu de înțeles din punct de vedere al progresiei logice și la fel de dificil de modificat fără a crea noi probleme.
Prin contrast, teoria pastei a programării se poate referi și la programarea care este foarte structurată. Un exemplu al acestui tip de teorie este cunoscut sub numele de cod lasagna. Lasagna este un fel de mâncare cu paste stratificate, cu ingrediente plasate în mod deliberat și consecvent între straturile de tăiței lasagna. Rezultatul final este un fel de mâncare de paste care este uniform pe tot parcursul și este ușor defalcat în componente identificabile.
Atunci când teoria pastelor sau programarea folosește termenul de cod lasagna pentru a se referi la un efort de programare, evidențiază logica și ordinea care par să guverneze întreaga structură a codului implicat. Este posibil să se modifice secțiuni ale codului fără a crea o reacție neașteptată undeva mai târziu în procesarea codului. Progresia și secvențierea logică sunt semnele distinctive ale unui cod de lasagna, făcându-l opusul codului de spaghete mai haotic.
Conceptul teoriei pastei de programare este de obicei atribuit lui Raymond Rubey. Într-o scrisoare pe care a scris-o unei reviste de comerț în 1992, Rubey a folosit terminologia legată de ravioli și spaghete pentru a se referi la strategii și situații de programare. Ideea generală a unei teorii a programării pastei s-a prins și în curând diverse metode de programare au început să fie etichetate de mulți programatori care foloseau diverse tipuri de paste. În unele cazuri, selecția numelor de paste a indicat atributele benefice ale unei abordări date de cod de programare, în timp ce altele se refereau la metode de programare care au fost considerate a fi mai puțin eficiente și mai puțin structurate.