Препроцессор
-
Определение и функции препроцессора
- Препроцессор — это программа, обрабатывающая входные данные для получения предварительно обработанных выходных данных.
- Выходные данные используются в качестве входных данных для других программ.
- Объем и тип обработки зависят от конкретного препроцессора, который может выполнять простые замены или быть полноценным языком программирования.
-
Примеры препроцессоров
- Лексические препроцессоры обрабатывают текст, заменяя токены и выполняя макрорасширения.
- Синтаксические препроцессоры преобразуют синтаксические деревья в соответствии с пользовательскими правилами.
- Универсальные препроцессоры предназначены для решения широкого спектра задач обработки текста, например, M4.
-
Использование препроцессоров
- Препроцессоры C и PL/I выполняют предварительную обработку исходного кода перед компиляцией.
- Некоторые языки программирования используют агрессивные вставки и шаблоны вместо макросов.
- Другие языки используют импорт во время компиляции или условную компиляцию.
-
Расширение и настройка языков
- Lisp и OCaml используют препроцессоры для настройки синтаксиса и расширения языка.
- В Objective Caml можно использовать разные синтаксисы в зависимости от требований.
- Lisp позволяет создавать внутренние DSL с помощью макросов.
-
Препроцессоры общего назначения
- M4 и C могут использоваться для обработки различных языков и задач, не связанных с их основным назначением.
- Примеры включают использование C для обработки JavaScript и Linux devicetree.
-
Дополнительные ресурсы
- Ссылки на проектирование DSL в Lisp, программирование снизу вверх и другие темы.
Полный текст статьи: