Pregunta

Descubrí que alguna herramienta como Noweb no es compatible con Macro. Quiero saber cuáles son las ventajas y desventajas de la macro en la programación alfabetizada.

¿Fue útil?

Solución

Asumiré que por "macro" te refieres a que la herramienta LP haga "macro-sustitución" como el preprocesador C y la mayoría de los ensambladores.

La sustitución de la macro es "azúcar sintáctica". Es una forma de escribir un solo símbolo que representa muchos detalles similares. De ahí el término "macro": fue "macroprogramación", escribiendo en un nivel más alto de abstracción.

Esto es lo que hicimos en los viejos tiempos cuando no teníamos una programación orientada a objetos para proporcionar capas de abstracción fácilmente accesibles.

Fue, técnicamente, posible tener capas de abstracción y programación de estilo macro en C utilizando llamadas de funciones justas. La programación "macro" preprocesador no es necesario. Por ejemplo, solíamos definir las funciones en línea como un "macro" preprocesador para optimizar nuestro código. Eso se debe a que el compilador C no optimizó bien en los primeros días.

Ahora que tenemos una programación OO, no se necesitan las capacidades macro de lenguajes de programación más primitivos.

La función de macro de programación alfabetizada se utilizó en lenguajes que no son OO (como C y Pascal) para crear capacidades similares a la clase y capacidades similares a la herencia a nivel LP.

No tiene sentido en eso. Simplemente defina las clases adecuadas y use la herencia adecuada.

Otros consejos

Escribí 2 herramientas de LP diferentes: TCLP - No admite macros:http://code.google.com/p/tclpAMD Nanolp, con macros muy flexibles para soporte:http://code.google.com/p/nano-lp.

Y cuando escribí TCLP, mis ideas sobre las macros eran: es malo porque destruye la estructura del programa, algo así como otro sistema macro, puedes pensar en ello sobre el macro sistema en lenguaje C. C Macroses oculta el código real: no son una función real que llama, pero las escondidas (¡como marcadores de posición!) Código real y LP -Macros son una forma paralela de ocultar el código. Esto es desadventeges.

Pero si escribe buenas macros LP, legibles y comprensibles, entonces no hay problemas para usarlos, por lo que incluí el sistema Flex MacRos (con los propietarios, la importación, los diccionarios de variables ...) en mi próxima herramienta: Nanolp.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top