Frage

Ich habe festgestellt, dass ein Tool wie Noweb Makro nicht unterstützt. Ich möchte wissen, was die Vor- und Nachteile von Makro bei der Literate -Programmierung sind?

War es hilfreich?

Lösung

Ich werde davon ausgehen, dass Sie mit "Makro" das LP-Tool wie den C-Präprozessor und die meisten Assembler haben.

Makrosubstitution ist "syntaktischer Zucker". Es ist eine Möglichkeit, ein einzelnes Symbol zu schreiben, das für viele ähnliche Details steht. Daher war der Begriff "Makro": Es war "Makroprogrammierung", das auf einer höheren Abstraktionsebene schrieb.

Dies haben wir in den alten Tagen gemacht, als wir keine objektorientierte Programmierung hatten, um leicht zugängliche Abstraktionsschichten zu liefern.

Es war-technisch gesehen-möglich, in C mit nur Funktionsaufrufen Schichten von Abstraktion und Programmierung im Makro-Stil zu haben. Die "Makro" -Prozessor-Programmierung ist nicht nicht notwendig. Zum Beispiel haben wir Inline-Funktionen als Vorprozessor "Makro" definiert, um unseren Code von Hand zu optimieren. Das liegt daran, dass der C -Compiler in den frühen Tagen nicht gut optimiert ist.

Nachdem wir eine OO -Programmierung haben, sind die Makrofunktionen primitiverer Programmiersprachen nicht erforderlich.

Die Literate-Programmier-Makrofunktion wurde in Nicht-OO-Sprachen (wie C und Pascal) verwendet, um klassenähnliche Funktionen und die erbschaftsähnlichen Funktionen auf LP-Ebene zu erstellen.

Es macht keinen Sinn. Definieren Sie einfach die richtigen Klassen und verwenden Sie die richtige Vererbung.

Andere Tipps

Ich habe 2 verschiedene LP -Tools geschrieben: TCLP - unterstützt keine Makros:http://code.google.com/p/tclpAMD -Nanolp mit sehr flexiblen Makros unterstützt:http://code.google.com/p/nano-lp.

Und als ich TCLP schrieb, waren meine Ideen zu Makros - es ist schlecht, weil es die Programmstruktur zerstört, so etwas wie ein anderes Makrosystem -, können Sie darüber nachdenken, wie über das parallele Makrosystem in der C -Sprache. C -Makrosen versteckt einen echten Code - sie sind keine echte Funktionsaufrufe, aber versteckt sich (wie Platzhalter!) Real Code und LP -Macros sind parallel, um Code zu verbergen. Dies ist DisadVenteges.

Wenn Sie jedoch gute LP -Makros schreiben, lesbar und verständlich, dann haben Sie keine Probleme, die sie verwenden. Deshalb habe ich das Flex -Makros -System (mit Plaeholdern, Importieren, Variablenwörterbücher ...) in mein nächstes Tool - Nanolp, einbezogen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top