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

editar
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

editar
  1. a b 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

editar

Enlaces externos

editar

📚 Artikel Terkait di Wikipedia

JAX-RPC

JAX-RPC (Java API for XML-based RPC, Java Application Programming Interface for Extensible Markup Language - based Remote Procedure Call) permite a una

Alice (lenguaje de programación)

Universidad Saarland utiliza la máquina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en inglés). Es un Software

Waveform Audio Format

Windows. A partir de Windows 2000, se definió un encabezado WAVE_FORMAT_EXTENSIBLE que especifica múltiples datos de canales de audio junto con las posiciones

Elixir (lenguaje de programación)

distribuidas y tolerantes de fallos. Elixir también proporciona un diseño extensible con herramientas productivas. Incluye soporte para metaprogramación en

Lua

[cita requerida] X10 «Lua - an extensible extension language». www.lua.org. Consultado el 25 de noviembre de 2021.  «PYPL PopularitY of Programming Language index».

Douglas Comer

sombra que Edita @– 1986 Equipamiento de Búsqueda del ordenador @– 1987 Extensible Terascale Facilidad (ETF): Indiana-Verja de Purdue (IP-verja) @– 2003

Document Object Model

(HTML) Extensible Markup Language (XML) JavaScript (JS) Tanto XHTML como SVG son aplicaciones de XML —un formato de lenguaje de marcado extensible— así

Richard Hickey

creó o diseñó ClojureScript y el formato de datos de Notación de datos extensible (EDN). Antes de Clojure, desarrolló dotLisp, un proyecto similar basado