Значения · Наука и познание

Макроязык

существительное

Коротко о главном

Что такое макроязык

Макроязык — это язык более высокого уровня абстракции, используемый для описания или создания других языков (микроязыков). В лингвистике он выступает метаязыком для анализа структуры естественных языков. В информатике макроязыками называют системы расширений синтаксиса компиляторов (например, препроцессор C/C++), позволяющие генерировать код на этапе подготовки к компиляции.

Концептуальная иллюстрация: крупный полупрозрачный чертеж с символами над сложным механизмом
Концептуальная иллюстрация: крупный полупрозрачный чертеж с символами над сложным механизмом
01

Лингвистический метаязык

Язык, используемый для описания структуры и правил другого языка (языка-объекта). Он позволяет формулировать грамматические правила, семантические отношения и фонетические закономерности.

Близкие слова

  • метаязыкБолее широкое понятие; макроязык подчеркивает иерархическую надстройку над языком-объектом.
  • описательный язык

Для анализа падежной системы русского языка лингвисты используют макроязык формальной грамматики.

Описательная метатеория требует четкого разделения между языком-объектом и макроязыком, на котором даются определения.

02

Средство расширения в программировании

Набор правил или директив, позволяющий разработчику определять новые конструкции, которые преобразуются в базовый код компилятора перед его основной обработкой. Это упрощает написание повторяющегося кода.

Близкие слова

  • препроцессорный язык
  • язык макросов

В языке C++ макроязык препроцессора позволяет создавать условные блоки компиляции через директивы #ifdef.

Использование макросов в Excel является примером применения простого макроязыка для автоматизации действий с ячейками.

Различие между макро- и микроязыком

Понятие макроязыка неразрывно связано с понятием микроязыка (языка-объекта). Микроязык — это непосредственно тот язык, который мы изучаем или используем для решения задач (например, английский язык или код на Python). Макроязык же находится над ним: он служит инструментом для описания правил микроязыка. Если лингвист пишет учебник по грамматике русского языка, то сам учебник написан на русском языке-объекте, но правила в нем сформулированы с помощью элементов метаязыка (терминов «подлежащее», «сказуемое»), которые и образуют основу макроязыка описания.

В программировании эта граница более техническая. Код программы пишется на микроязыке (языке высокого уровня), а макросы пишутся на языке препроцессора, который является надстройкой. Важно понимать, что макроязык не исполняется виртуальной машиной напрямую, он трансформирует исходный текст.

Контекстные синонимы и ограничения замены

В лингвистическом контексте термин «макроязык» часто взаимозаменяем с «метаязыком». Однако «метаязык» — более широкое понятие, включающее любые средства описания, тогда как «макроязык» подчеркивает иерархическую надстройку. В IT-сфере синонимом может выступать «DSL» (Domain Specific Language), но только если этот язык специально создан для конфигурации или расширения основного инструмента. Нельзя заменить «макроязык» словом «скриптовый язык», так как скрипты обычно исполняются во время работы программы, а макросы часто работают на этапе сборки или компиляции.