Programación literaria
La programación literaria (o letrada) es un estilo de programación propuesto por Donald Knuth para documentar los programas.[1] Él mismo la empleo en su sistema tipográfico .
El estilo de programación literaria como se le ha llamado en español o programación letrada o instruida como se traduce literalmente, tal y como lo concibió Knuth, representa un movimiento disruptivo respecto a la escritura de programas en el orden y forma impuesto por el ordenador. En cambio permite a los programadores desarrollar sus programas en el orden fijado por la lógica y el flujo de sus pensamientos.[1]
Qué es la programación literaria o letrada
Debo confesar que también puede haber un poco de malicia en mi elección del título. Durante la década de los setenta, fui forzado, como todos, a adoptar las ideas de la programación estructurada, porque no podía soportar que se me culpara de escribir programas desestructurados. Ahora tengo la oportunidad de vengarme. Al acuñar la frase «programación letrada», estoy imponiendo un compromiso moral a todo aquel que oye el término; seguro que nadie quiere reconocer que escribió un programa iletrado.Donald E. Knuth, Literate Programming (énfasis en el original)
Los programas literarios o letrados, están escritos como una exposición lógica en un lenguaje humano similar a la explicación de las fórmulas empleadas para representar y resolver un problema en un texto de física o de matemáticas. Se basa en describir el análisis del problema y la génesis de la solución así como su implementación insertando cómo se deriva cada fragmento del programa intercalando código fuente entre los párrafos cómo en los textos de matemáticas se intercalan las fórmulas. Se usan macros, para que mediante preprocesadores como el programa WEB se separe y ordene el programa fuente para compilarlo, así como el código para producir la documentación en una tipografía estética del mismo programa porque actualmente se dispone de para prácticamente cualquier computadora.
La programación literaria facilita enormemente la programación, porque se documenta perfectamente en qué consiste el problema, cómo se resuelve, cómo y por qué se adoptó cierto diseño, cómo se optimizó y cómo se implementó en el lenguaje de programación. Cualquiera puede leerlo y entenderlo. No tiene que descifrar código para entender cómo funciona el programa para entender qué hace. Ni buscar en otra parte para aprender sobre el problema que resuelve, salvo en la bibliografía citada en el programa, porque todo se incluye en el mismo lugar.
Referencias
- Knuth, Donald E. (1984). «Literate Programming» (PDF). The Computer Journal (British Computer Society) 27 (2): 97-111. doi:10.1093/comjnl/27.2.97. Consultado el 4 de enero de 2009.
Bibliografía
- Knuth, Donald E. (1992). Literate Programming. , California: Stanford University Center for the Study of Language and Information. ISBN 978-0937073803.
- Guari, Eitan M. (1994). TeX & LaTeX: Drawing and Literate Programming. McGraw Hill. ISBN 0-07-911616-7. (includes software).
- Nørmark, Kurt (13 de agosto de 1998). «Literate Programming - Issues and Problems». University of Aalborg.
Enlaces externos
- comp.programming.literate FAQ at Internet FAQ Archives
- Literate Programming newsgroup
- Literate Programming website
- LiteratePrograms a literate programming wiki.
- Select A literate programming example using noweb
- Softpanorama page on literate programming
- Haskell literate programming
- Specification of literate programming in the Haskell Report the accepted Haskell standard
- Noweb — A Simple, Extensible Tool for Literate Programming