Agentes de chat/Literate Programming
Programación literata es, según ciertos criterios semánticos, la traducción más atinada de Literate Programming, término utilizado para referirse a cierta metodología para el desarrollo de programas que consiste en darle prelación a la documentación de un programa frente el código. Es decir, se concentra en describir el problema para resolver con el programa, las posibles soluciones, la descomposición del programa en fragmentos más sencillos, la descripción de cada fragmento y, finalmente, el código de cada fragmento. En otras palabras, para trabajar con la programación literata, el primer paso a llevar a cabo es concentrarse en explicarle a un ser humano lo que uno quiere que el programa haga en lugar de explicarle a un computador. Para ésto es necesario mezclar el lenguaje formal de programación con el natural de la documentación, de tal manera que uno complemente al otro y escoger con criterio los nombres de las variables.
CWEB: sistema de documentación estructurada
editarLa estructura de un programa puede ser vista como una serie de piezas interconectados en un red (WEB). Para documentar un programa se debe explicar cada pieza de la red y su relación con las demás. La filosfía CWEB indica que todo buen programador necesita dos herramientas a la hora de escribir su código: una herramienta de formato como TeX y una herramienta para escribir el código como C, pues ninguno de los dos proveerá al programador de utilidades adecuadas para documentar el programa, pero juntos pueden convertirse en una poderosa arma. Las habilidades tipográficas de TeX o LaTeX nos permiten ofrecer al lector del código una explicación de la estructura de cada parte del programa haciendo esta estructura visible. Las herramientas de programación de las que nos proveen lenguajes como C, hacen posible la especificación de algoritmos formalmente y sin dar paso a ambigüedades.