Ohjelmoinnin pastateoria liittyy eri ohjelmointirakenteiden monimutkaisuuteen. Aivan kuten pastaa on monia eri kokoja ja muotoja, sama pätee ohjelmointikoodiin. Pastateoriassa tietynlaista pastaa käytetään värikkäänä havainnollistuksena tiettyjen ohjelmointiprotokollien joukkoon liittyvien näkökohtien tunnistamiseksi.
Yksi erinomainen esimerkki ohjelmointiteoreista on spagettikoodi. Keitettyjä spagettia tarjoillaan usein kokoelma säikeitä, jotka risteytyvät ja kietoutuvat toisiinsa. On käytännössä mahdotonta purkaa yksi spagettilanka aiheuttamatta jonkin verran häiriötä muille säikeille.
Tämän tyyppisellä pastateorialla ymmärretään, että ohjelmointi on jonkin verran sattumaa ja kaoottista. Ohjelmointikoodissa ei ole juurikaan todellista rakennetta. Lopputuloksena on, että yrittämällä muokata sekvenssin yhteen osaan liittyvää koodia syntyy usein odottamattomia ongelmia koodin toisen osan kanssa. Tämän seurauksena spagettikoodia on erittäin vaikea ymmärtää loogisen etenemisen kannalta ja yhtä vaikeasti muokattava ilman uusia ongelmia.
Sitä vastoin ohjelmoinnin pastateoria voi viitata myös hyvin rakenteelliseen ohjelmointiin. Yksi esimerkki tämän tyyppisestä teoriasta tunnetaan lasagne -koodina. Lasagna on kerrostettu pastaruoka, jonka ainesosat on sijoitettu tarkoituksella ja johdonmukaisesti lasagne -nuudelikerrosten väliin. Lopputuloksena on kauttaaltaan yhtenäinen pasta, joka on helppo hajottaa tunnistettaviksi osiksi.
Kun pastateoria tai ohjelmointi käyttää termiä lasagne -koodi viittaamaan ohjelmointiin, se korostaa logiikkaa ja järjestystä, joka näyttää hallitsevan koko koodin rakennetta. Koodin osia on mahdollista muokata luomatta odottamatonta reaktiota jossain myöhemmin koodin käsittelyssä. Looginen eteneminen ja sekvensointi ovat lasagne -koodin tunnusmerkkejä, joten se on vastakohta kaoottisemmalle spagettikoodille.
Ohjelmoinnin pastateorian käsite johtuu tyypillisesti Raymond Rubeystä. Kirjeessään, jonka hän kirjoitti ammattilehdelle vuonna 1992, Rubey käytti ravioliin ja spagettiin liittyvää terminologiaa viittaamaan ohjelmointistrategioihin ja -tilanteisiin. Monet ohjelmoijat alkoivat leimata yleisen ajatuksen ohjelmointiteoriaa ohjelmoinnista ja pian erilaisia ohjelmointimenetelmiä, jotka käyttivät erilaisia pastoja. Joissakin tapauksissa pastanimien valinta osoitti tietyn ohjelmointikoodimenetelmän hyödyllisiä ominaisuuksia, kun taas toiset viittasivat ohjelmointimenetelmiin, joita pidettiin vähemmän tehokkaina ja rakenteellisina