Макрос в грамотном программировании
-
26-10-2019 - |
Вопрос
Я обнаружил, что какой -то инструмент, такой как 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.