Предпроцесор

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

Предпроцесорът е програма която извършва предварителна (подготвителна) обработка на информацията преди нейното подаване към основната обработваща програма. Варира според сложността на обработката, от прости заместителни макрос операции до сложни преработки присъщи за пълноценните програмни езици.

Почти всяка обработваща програма (процесор) може да изпълнява функцията на предпроцесор, но като такъв се описват само тези чиято функция се възприема като подготвителна, а не основна. Това означава че една и съща програма може да изпълнява ролята на (основен, самостоятелен) процесор или предпроцесор, в зависимост от нейното място и роля в конкретната обработка.

Лексикални предпроцесори[редактиране | edit source]

Лексикалните процесори извършват обработка на най-ниското, лексикално, ниво. Те рядко се използват самостоятелно и често изпълняват функцията на предпроцесори. Извършват прости заместителни операции. Най-често се реализират като макропроцесори.

Примери за лексикални предпроцесори са:

  • Предпроцесорът на езика за програмиране C.
  • m4 — макропроцесор с общо предназначение

Синтактични предпроцесори[редактиране | edit source]

При синтактичните предпроцесори, правилата за трансформация взимат предвид синтактичната структура на входящите данни. Могат да служат за дефиниране или предефиниране на синтаксис с цел разширяване или специализиране на програмен език. Много от тях могат да се използват и като самостоятелни езикови процесори.

Примери за синтактични (пред)процесори са:

  • Lisp и неговите производни имат вградена поддръжка на (синтактични) макроси. Разширяването на макросите се извършва от синтактичния анализатор на компилатора, преди процеса на същинската компилация. Затова, в контекста на процеса на компилация, това разширяване на макросите може да се разглежда като предпроцесорна обработка.
  • OCaml също има възможност за дефиниране на собствен синтаксис.
  • XSLT

Вижте също[редактиране | edit source]