Saludos. He estado buscando en la Programación Literaria un poco ahora, y me gusta la idea detrás de esto: básicamente escribes un pequeño artículo sobre tu código y anotas la mayor parte de las decisiones de diseño, el código que probablemente rodea el módulo, el trabajo interno del módulo, suposiciones y conclusiones resultantes de las decisiones de diseño, extensión potencial, todo esto se puede escribir de una manera agradable usando tex. De acuerdo, el primer punto: es documentación. Debe mantenerse actualizado, pero eso no debería ser tan malo, porque su cambio debe tener una justificación y puede escribirlo.Programación de escalamiento alfabetizado?
Sin embargo, ¿cómo funciona la escala de alfabetización de programación en mayor grado? En general, la Programación Literate sigue siendo solo texto. Texto legible muy humano, por supuesto, pero sigue siendo texto, y por lo tanto, es difícil seguir sistemas grandes. Por ejemplo, volví a trabajar grandes partes de mi compilador para usar >> y algo de magia para encadenar los pasos de compilación juntos, porque algunos "x.register_follower (y); y.register_follower (z); y.register_follower (a); ... "se volvió realmente difícil de manejar, y cambiar eso a x >> y >> z >> a lo hizo un poco mejor, aunque también está en su punto de ruptura.
Entonces, ¿cómo se escala la Programación Literate a sistemas más grandes? ¿Alguien intenta hacer eso?
Mi idea sería usar LP para especificar componentes que se comuniquen entre sí mediante el uso de secuencias de eventos y encadenar todas estas juntas utilizando un subconjunto de graphviz. Esta sería una extensión bastante natural de LP, ya que puede extraer una documentación (un diagrama de flujo de datos) de la red y también generar código de ella realmente bien. ¿Que piensas de eso?
- Tetha.
ver también http://stackoverflow.com/questions/219168/literate-programming –
Me parece que algunas de estas respuestas confunden la programación literaria con una programación fluida. Solo digo ... – Benjol
Er, la motivación declarada de Knuth para la programación alfabetizada siempre ha sido que le ayudó a escalar: escribió dos programas bastante grandes en él (TeX y METAFONT), e incluso publicó TeX: El programa como un libro. Puedes comentar tan poco o más como quieras; el punto de la programación alfabetizada es poder escribirlo en un orden apropiado para la exposición. – ShreevatsaR