Question

Je trouve que certains outils tels que Noweb ne supporte pas les macro. Je veux savoir quels sont les avantages et les inconvénients de macro dans la programmation littéraire?

Était-ce utile?

La solution

Je suppose que par « macro » tu veux dire avoir l'outil LP ne « macro-substitution » comme le préprocesseur C et la plupart des assembleurs.

substitution Macro "sucre syntaxique". Il est un moyen d'écrire un seul symbole qui signifie beaucoup de détails similaires. D'où le terme « macro »: Il était « macro-programmation », écrit à un niveau supérieur d'abstraction

.

Ce que nous avons fait dans les temps anciens jours où nous n'avions pas la programmation orientée objet pour fournir des couches d'abstraction facilement accessibles.

Il était - techniquement - possible d'avoir des couches d'abstraction et de programmation macro-style dans C à l'aide d'appels seulement la fonction. Le pré-processeur de programmation "macro" est pas nécessaires . Par exemple, nous avons utilisé pour définir des fonctions inline comme préprocesseur « macro » à la main optimize notre code. En effet, le compilateur C n'a pas bien optimize dans les premiers jours.

Maintenant que nous avons la programmation orientée objet, les capacités macro des langages de programmation les plus primitives ne sont pas nécessaires.

La Programmation lettrée fonction macro a été utilisé dans les langues non-OO (comme C et Pascal) pour créer la classe comme les capacités et l'héritage comme des capacités au niveau LP.

Il est inutile de cela. Il suffit de définir des classes appropriées et utiliser l'héritage approprié.

Autres conseils

J'ai écrit 2 différents outils LP: TCLP - ne supporte pas les macros: http://code.google.com/p/tclp amd NanoLP, avec des macros très flexibles de soutien: http://code.google.com/p/nano-lp .

Et quand j'avais écrit TCLP, mes idées sur les macros était - il est mauvais parce qu'il détruit la structure du programme, quelque chose comme un autre système macro - vous pouvez y penser comme à propos de macro-système parallèle dans le langage C. C macroses cache le code réel - ils ne sont pas vocation réelle fonction, mais cache le code réel et LP macros sont de façon parallèle au code cacher (comme des espaces réservés!). Ceci est disadventeges.

Mais si vous écrivez de bonnes macros LP, lisibles et compréhensibles, alors aucun problème à utiliser eux, donc j'inclus système de macros flex (avec plaeholders, l'importation, des dictionnaires variables ...) dans mon prochain outil -. NanoLP

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top