La teoría pasta de la programación tiene que ver con la complejidad de varias estructuras de programación. Así como la pasta viene en muchos tamaños y formas diferentes, lo mismo ocurre con el código de programación. Con una teoría de la pasta, un tipo particular de pasta se usa como una ilustración colorida para identificar algunos aspectos asociados con un conjunto particular de protocolos de programación.
Un excelente ejemplo de una teoría de la programación basada en la pasta es el código spaghetti. Los espaguetis cocidos a menudo se sirven como una colección de hebras que se cruzan y se entrelazan entre sí. Es prácticamente imposible extraer una hebra de espagueti sin causar algún grado de alteración en las otras hebras.
Con este tipo de teoría de la pasta, se entiende que el esfuerzo de programación es algo casual y caótico. Hay poca o ninguna estructura real en el código de programación. El resultado final es que intentar modificar el código asociado con una parte de la secuencia a menudo crea problemas imprevistos con otra parte del código. Como resultado, un código espagueti es extremadamente difícil de entender en términos de progresión lógica e igualmente difícil de modificar sin crear nuevos problemas.
Por el contrario, la teoría pasta de la programación también puede referirse a una programación que está muy estructurada. Un ejemplo de este tipo de teoría se conoce como el código de lasaña. Lasaña es un plato de pasta en capas, con ingredientes colocados deliberada y consistentemente entre las capas de fideos de lasaña. El resultado final es un plato de pasta que es uniforme en todas partes y se divide fácilmente en componentes identificables.
Cuando la teoría o programación de la pasta usa el término código de lasaña para referirse a un esfuerzo de programación, está destacando la lógica y el orden que parece gobernar toda la estructura del código involucrado. Es posible modificar secciones del código sin crear una reacción inesperada en algún lugar posterior en el procesamiento del código. La progresión lógica y la secuenciación son características distintivas de un código de lasaña, lo que lo convierte en lo opuesto al código de espagueti más caótico.
El concepto de la teoría de la programación de la pasta se atribuye típicamente a Raymond Rubey. En una carta que escribió a una revista especializada en 1992, Rubey utilizó terminología relacionada con ravioles y espaguetis para referirse a situaciones y estrategias de programación. La idea general de una teoría de la programación de pasta se hizo popular y pronto varios programadores comenzaron a etiquetar varios métodos de programación utilizando varios tipos de pasta. En algunos casos, la selección de nombres de pasta apuntó hacia atributos beneficiosos de un enfoque de código de programación dado, mientras que otros se refirieron a métodos de programación que se consideraron menos eficientes y estructurados.