Вопрос

Я обнаружил, что какой -то инструмент, такой как Noweb, не поддерживает макрос. Я хочу знать, каковы преимущества и недостатки макроса в грамотном программировании?

Это было полезно?

Решение

Я предполагаю, что под «макро» вы имеете в виду, что инструмент LP Do Do "макросажизация", как препроцессор C и большинство сборщиков.

Макро -замена - «синтаксический сахар». Это способ написать один символ, который означает множество подобных деталей. Отсюда термин «макрос»: это было «макропрограммирование», написанное на более высоком уровне абстракции.

Это то, что мы делали в старые дни, когда у нас не было объектно-ориентированного программирования, чтобы обеспечить легко доступные слои абстракции.

Это было-технически-возможно иметь слои абстракции и макро-стиль программирования в C, используя просто функциональные вызовы. Предварительное программирование «макро» не необходимый. Анкет Например, мы использовали для определения встроенных функций как препроцессорного «макроса» для оптимизации нашего кода. Это потому, что в первые дни компилятор C плохо оптимизировал.

Теперь, когда у нас есть программирование OO, не нужны макро -возможности более примитивных языков программирования.

Грамотная функция макроса программирования использовалась на языках не-ОО (например, C и Pascal) для создания классоподобных возможностей, а также в отношении наследства на уровне LP.

В этом нет смысла. Просто определите правильные классы и используйте правильное наследование.

Другие советы

Я написал 2 различных инструмента LP: TCLP - не поддерживает макросы:http://code.google.com/p/tclpamd nanolp, с очень гибкими макросами, поддерживающими:http://code.google.com/p/nano-lp.

И когда я писал TCLP, мои идеи о макросах были - это плохо, потому что он разрушает структуру программы, что -то вроде другой макросистемы - вы можете думать об этом, как о параллельной макросистеме на языке C. C Macrose скрывает реальный код - они не являются реальными вызовами функций, но скрывает (например, заполнители!) Реальный код, а LP -Macros - это параллельный способ скрыть код. Это недостатки.

Но если вы пишете хорошие макросы LP, читаемые и понятные, то никаких проблем для их использования, поэтому я включил систему Flex Macros (с держателями -держателями, импортирующие, переменные ...) в свой следующий инструмент - Nanolp.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top