| dbpprop:abstract
|
- Literate programming is an approach to programming introduced by Donald Knuth as an alternative to the structured programming paradigm of the 1970s. The literate programming paradigm, as conceived by Knuth, represents a move away from writing programs in the manner and order imposed by the computer, and instead enables programmers to develop programs in the order demanded by the logic and flow of their thoughts. Literate programs are written as an uninterrupted exposition of logic in an ordinary human language, much like the text of an essay, in which macros which hide abstractions and traditional source code are included. Literate programming tools are used to both en-tangle a literate program into a form suitable for further compilation or execution, and to weave the program into formatted documentation. While the first generation of literate programming tools were computer language-specific, the later ones are language-agnostic and exist above the programming languages.
- Mit literate programming (engl. mit literarisches Programmieren übersetzbar) bezeichnet man das Schreiben von Computerprogrammen in einer Form, so dass sie vor allem für Menschen lesbar sind. Dies steht im Gegensatz zur konventionellen Ansicht, dass Programme hauptsächlich für den Computer lesbar sein sollen. Literate programming bedeutet technisch gesehen, dass sowohl die Dokumentation als auch der Quelltext des Programms in einer gemeinsamen Datei vorhanden sind. Spezielle Werkzeuge sorgen dafür, dass sowohl der Quelltext als auch die Dokumentation aus dieser Datei extrahiert werden können. Da die für den Menschen geschriebene Dokumentation im Vordergrund steht, ist die Reihenfolge der Programmausdrücke so ausgelegt, dass diese verständlich dokumentiert werden können.
- La Programació literària és una expressió escrita, estructurada, partida i documentada d'un programa d'ordinador adreçada a les persones i, indirectament, a les màquines. Hom escriu la documentació i el codi en un mateix fitxer del qual es poden extreure cadascun d'ells amb eines apropiades. La informació s'escriu i presenta en ordre i manera adreçades al consum humà, amb explicacions detallades. El codi s'haurà d'extreure i rearranjar per al procés habitual de compilació o interpretació. La intenció de la Programació literària és facilitar la comprensió dels programes per allargar-ne la vida més enllà de la permanència dels professionals que els creen i mantenen.
- La programación literaria es un paradigma de programación propuesto por Donald Knuth como alternativa al popular paradigma de programación estructurada en la década de 1970. El paradigma de programación literaria, tal y como lo concibió Knuth, representa un movimiento distruptivo 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. Los programas literarios están escritos como una exposición lógica no interrumpida en un lenguaje humano, de forma similar al texto de un ensayo, en el cual se incluye el código fuente tradicional oculto tras macros. Las herramientas de programación se encargan de separar el programa de forma que pueda ser compilado y ejcutado y la documentación del mismo porgrama. Mientras que las primera generación de herramientas de programación literaria estaban centradas en un lenguaje de programación específico, las últimas son independientes de lenguaje y se sitúan por encima de los lenguajes de programación.
- La programmation lettrée (ou programmation littéraire) est une approche de la programmation préconisée par Donald Knuth. « Je crois que le temps est venu pour une amélioration significative de la documentation des programmes, et que le meilleur moyen d'y arriver est de considérer les programmes comme des œuvres littéraires. D'où mon titre "programmation lettrée". Nous devons changer notre attitude traditionnelle envers la construction des programmes : au lieu de considérer que notre tâche principale est de dire à un ordinateur ce qu'il doit faire, appliquons-nous plutôt à expliquer à des êtres humains ce que nous voulons que l'ordinateur fasse. Le praticien de programmation lettrée peut être vu comme un essayiste, qui s'attache principalement à l'exposition du sujet et à l'excellence du style. Un tel auteur, le dictionnaire à la main, choisit avec soin les noms de ses variables et explique la signification de chacune. Il cherche à obtenir un programme qui est compréhensible parce que les concepts ont été présentés dans le meilleur ordre pour la compréhension humaine, en utilisant un mélange de méthodes formelles et informelles qui se complètent l'une l'autre. » De nombreux langages de programmation modernes incluent un sous-langage de balisage léger ce qui évite une phase de séparation du code source proprement dit et de sa documentation, condition nécessaire pour la programmation agile.
- 文芸的プログラミング(Literate Programming)とは、 ドナルド・クヌースの提唱したコンピュータのプログラミングスタイルのこと。 「プログラミングは、芸術であり、文学である」と主張するドナルド・クヌースの論文集のこと。上に関する論文も含まれる。 ここでは前者の意味を説明する。 通常コンピュータのプログラミングでは、プログラムソースと関連するドキュメントを別々のファイルに記述するが、これには管理や更新内容の反映が負担となる。 この問題に対して、文芸的プログラミングではドキュメントとソースを併記したWEBと呼ばれるメタソースを記述し、そこからドキュメントとソースコードをそれぞれ生成させることで情報の一体性を高めている(これらのメカニズムをWEBシステムと呼ぶ)。 単にドキュメントとコードが併記されるだけであれば、通常のコメントやPerlなどに見られる埋め込みドキュメントと違いはないが、文芸的プログラミングではさらにマクロを利用することで、任意のコード断片にドキュメントを対応させる。これはいわゆるハイパーリンクに相当し、コードの実行順と関係なく自由な順序で内容を記述することができる。例えば、 1. 中心アルゴリズム do_somethingは中心となる処理内容である。 item. do_something. 2. メインループ あるコレクションの全ての内容を<中心アルゴリズム>で処理する。 for item in collection のような形態である。これは最終的に for item in collection item. do_something. というコードを出力する。 内容への言及を純粋に関連する部分だけを取り出して行うために、コメントとは全く異なる意味作用と見るべきであろう。(特に実プログラム中に埋め込まれたコメントは必要以上に簡略になりがちであるが、記述が中心となる文芸的プログラミングならばその点は抑制される) 現実には、変化の激しいソース記述を全て文芸的プログラミングで行うのは無理がある。しかし複雑なアルゴリズムに関する内容や、配布を意識したオープンソースでは応用の可能性があるといえる。 クヌースによるオリジナルのWEBシステムでは、PascalコードとTeXフォーマットのドキュメントを生成していた。しかし文芸的プログラミングの概念は特定の言語やフォーマットとは独立で、その後各種の言語に多くの移植が行われている。
- Literate programming (ang. programowanie piśmienne) to styl programowania oparty na założeniu, że programy komputerowe powinny być pisane z naciskiem na czytelność kodu źródłowego dla ludzi, podobnie do dzieła literackiego. Najważniejsza staje się dokumentacja dokładnie tłumacząca działanie algorytmu, w którą dopiero wplecione są fragmenty w języku programowania. Kontrastuje z powszechnym poglądem, że głównym celem jest stworzenie działającego kodu, którego dokumentacja pełni rolę pomocniczą.
- Programação literária é uma filosofia de programação de computadores baseada na premissa que um programa de computador deve ser escrito tendo a legibilidade humana como principal objetivo, similar a um trabalho de literatura. De acordo com essa filosofia, programadores devem almejar um estilo "literário" em sua programação tanto quanto escritores buscam um estilo inteligível e articulado em sua escrita. Essa filosofia contrasta com a visão mais comum que diz que o objetivo principal ou único do programador é criar código fonte e que a documentação deve ser apenas um objetivo secundário. Na prática, programação literária é atingida pela combinação da documentação (legível por humanos) e código fonte (legível pela máquina) em um único arquivo (ficheiro) fonte, de modo a manter uma correspondência próxima entre a documentação e o código fonte. A ordem e a estrutura desse arquivo são especificamente projetadas para auxiliar a compreensão humana: código e documentação juntos são organizados em ordem lógica e/ou hierárquica (tipicamente de acordo com um esquema que acomode explicações detalhadas e comentários como necessárias). Ao mesmo tempo, a estrutura e o formato dos arquivos fontes acomodam utilitários externos que geram documentação do programa e/ou extraem o código legível por máquina dos mesmos arquivos fontes. O primeiro ambiente de programação literária publicado foi WEB, introduzido por Donald Knuth em 1981 para seu sistema de tipografia TeX; ele usa Pascal como sua linguagem de programação subjacente e TeX para tipografia da documentação.
- Литературное Программирование или (английский термин намеренно двусмыслен) Грамотное программирование — концепция, методология программирования и документирования. Термин и саму концепцию разработал Дональд Кнут в 1981 году при разработке системы компьютерной вёрстки TeX. Возможно, что самый простой способ понять ЛП — это вспомнить объяснения в курсах программирования, написанные фразами на «псевдокоде» на «человеческом языке». Они понятны, когда сам код труден, и скрывают под одной фразой-"оператором" возможно множество других вложенных абстракций и/или программого кода на непосредственно машинном языке. Л. П. в каком-то смысле есть «программирование на псевдокоде» произвольными фразами, которые затем раскрываются как точные макро с помощью простой utility из файла-текста, который включает в себя одновременно документированные текстовые объяснения концепций, и сам код и псевдокод. Вкратце, смысл подхода в том, что: ЛП есть цельный мета-подход к написанию программ, то есть «парадигма», применимая на мета-уровне к любой машинной программе на любом машинном языке. ЛП есть система макро, создаваемая из фраз на обычном человеческом, которые становятся как бы «метаязыком» над конкретным языком программирования. Пользование этими фразами подобно объяснению алгоритмов на «псевдокоде», но в случае ЛП они становятся точными «новыми операторами» метаязыка. Программа и документация более не пишутся как машинный код с примечаниями. Само конструирование программы идет в порядке, определяемой логикой мысли (или объяснений), где макро на 'псевдокоде' играют роль абстракций (над абстракциями и/или кодом), для ясности мысли. Т. е. меняется кардинально порядок следования в программе, он не машинный, а тот, который требует логика. Технически ЛП делается с помощью маленькой utility, которая одной командой запускает пре-процессор, раскрывает все макро и «спутывает», «запутывает» («tangle») логическое изложение в машинный код, который потом можно компилировать или запускать (если подлежащий язык скрипт) как обычно. Другая команда создает («сплетает», «weave») из этого общего для программы и объяснений файла сформатированную документацию (для печати, веба и т. д. ) Другими словами программа мыслится не как иерархия, top-down или bottom-up, но как «взаимозависимая сеть концепций» (отсюда название первой системы ЛП её автором, Дональдом Кнутом, «Web») и создается как «поток мысли», проходящий по этой сети в связном, логичном виде, что внешне делает форму описания похожей на литературное эссе. Программист в общем отказывается от привязки к предписанному машиной порядку. Эффективность подхода: Сам Кнут, как известно, отличающийся поразительной кропотливостью и способностью создавать огромные сложные системы в одиночку, утверждает, что без этой техники его ум не смог бы справиться с задачей и охватить такой объем информации. Ошибочные представления: Система Л. П. , которую Кнут предлагал как альтернативу «структурному программированию» 1970х несмотря на доказанную эффективность мало распространена из-за непонимания: многие думают, что ЛП лишь система документирования, или система форматирования обычных комментариев, или что очень разговорчивые комментарии создают Л. Программу. На самом деле программа практически без комментариев может быть ЛП, равно как и болтливые примечания сами по себе не создают ЛП-подхода. Самое частое непонимание относится к роли системы макро, позволяющей строить произвольные системы абстракций над абстракциями и к изменению порядка следования кусков от машинно-ориентированного к тому, который требует мышление. Так, абсолютно неверно считать Л. П. -программированием использование систем документирования интерфейсов вроде JavaDoc, doxygen, DOC++, autoduck, POD. Более подробная информация, разбор примера и ссылки на цитаты и программы-инструменты для Л. П. содержатся в англоязычной версии статьи
|
| dbpprop:bquoteProperty
|
- "Another surprising thing that I learned while using WEB was that traditional programming languages had been causing me to write inferior programs, although I hadn't realized what I was doing. My original idea was that WEB would be merely a tool for documentation, but I actually found that my WEB programs were better than the programs I had been writing in other languages."
- "I chose the name WEB partly because it was one of the few three-letter words of English that hadn't already been applied to computers. But as time went on, I've become extremely pleased with the name, because I think that a complex piece of software is, indeed, best regarded as a web that has been delicately pieced together from simple materials. We understand a complicated system by understanding its simple parts, and by understanding the simple relations between those parts and their immediate neighbors. If we express a program as a web of ideas, we can emphasize its structural properties in a natural and satisfying way."
- "I had the feeling that top-down and bottom-up were opposing methodologies: one more suitable for program exposition and the other more suitable for program creation. But after gaining experience with WEB, I have come to realize that there is no need to choose once and for all between top-down and bottom-up, because a program is best thought of as a web instead of a tree. A hierarchical structure is present, but the most important thing about a program is its structural relationships. A complex piece of software consists of simple parts and simple relations between those parts; the programmer's task is to state those parts and those relationships, in whatever order is best for human comprehension not in some rigidly determined order like top-down or bottom-up."
- "Thus the WEB language allows a person to express programs in a "stream of consciousness" order. TANGLE is able to scramble everything up into the arrangement that a PASCAL compiler demands. This feature of WEB is perhaps its greatest asset; it makes a WEB-written program much more readable than the same program written purely in PASCAL, even if the latter program is well commented. And the fact that there's no need to be hung up on the question of top-down versus bottom-up, since a programmer can now view a large program as a web, to be explored in a psychologically correct order is perhaps the greatest lesson I have learned from my recent experiences."
- "WEB's macros are allowed to have at most one parameter. Again, I did this in the interests of simplicity, because I noticed that most applications of multiple parameters could in fact be reduced to the one-parameter case. For example, suppose that you want to define something like... In other words, the name of one macro can usefully be a parameter to another macro. This particular trick makes it possible to..."
- Literate Programming
- dbpedia:Donald_Knuth
- dbpedia:Literate_programming/bquoteProperty5/ref_label
|
| rdfs:comment
|
- Literate programming is an approach to programming introduced by Donald Knuth as an alternative to the structured programming paradigm of the 1970s. The literate programming paradigm, as conceived by Knuth, represents a move away from writing programs in the manner and order imposed by the computer, and instead enables programmers to develop programs in the order demanded by the logic and flow of their thoughts.
- Mit literate programming (engl. mit literarisches Programmieren übersetzbar) bezeichnet man das Schreiben von Computerprogrammen in einer Form, so dass sie vor allem für Menschen lesbar sind. Dies steht im Gegensatz zur konventionellen Ansicht, dass Programme hauptsächlich für den Computer lesbar sein sollen. Literate programming bedeutet technisch gesehen, dass sowohl die Dokumentation als auch der Quelltext des Programms in einer gemeinsamen Datei vorhanden sind.
- La Programació literària és una expressió escrita, estructurada, partida i documentada d'un programa d'ordinador adreçada a les persones i, indirectament, a les màquines. Hom escriu la documentació i el codi en un mateix fitxer del qual es poden extreure cadascun d'ells amb eines apropiades. La informació s'escriu i presenta en ordre i manera adreçades al consum humà, amb explicacions detallades.
- La programación literaria es un paradigma de programación propuesto por Donald Knuth como alternativa al popular paradigma de programación estructurada en la década de 1970. El paradigma de programación literaria, tal y como lo concibió Knuth, representa un movimiento distruptivo respecto a la escritura de programas en el orden y forma impuesto por el ordenador.
- La programmation lettrée (ou programmation littéraire) est une approche de la programmation préconisée par Donald Knuth. « Je crois que le temps est venu pour une amélioration significative de la documentation des programmes, et que le meilleur moyen d'y arriver est de considérer les programmes comme des œuvres littéraires. D'où mon titre "programmation lettrée".
- Literate programming (ang. programowanie piśmienne) to styl programowania oparty na założeniu, że programy komputerowe powinny być pisane z naciskiem na czytelność kodu źródłowego dla ludzi, podobnie do dzieła literackiego. Najważniejsza staje się dokumentacja dokładnie tłumacząca działanie algorytmu, w którą dopiero wplecione są fragmenty w języku programowania.
- Programação literária é uma filosofia de programação de computadores baseada na premissa que um programa de computador deve ser escrito tendo a legibilidade humana como principal objetivo, similar a um trabalho de literatura. De acordo com essa filosofia, programadores devem almejar um estilo "literário" em sua programação tanto quanto escritores buscam um estilo inteligível e articulado em sua escrita.
- Литературное Программирование или (английский термин намеренно двусмыслен) Грамотное программирование — концепция, методология программирования и документирования.
|