В компиляторе что означает "реализатор"?

Я пытаюсь выяснить связь между libsass и node-sass.

Официальная страница libsass гласит:

  1. LibSass — это порт C++ исходного CSS-компилятора Ruby Sass с C API.

  2. LibSass — это просто библиотека. Для локального запуска кода (т. е. для компиляции таблиц стилей) вам понадобится исполнитель или "обертка".

Я мало знаю о компиляторе Что такое реализатор? Интересно, как компилируется node-sass

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
2
0
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Tl;dr — он оборачивает что-то еще, например, библиотеку или API, чтобы упростить его использование (или сделать его доступным для текущего языка программирования).

Длинный ответ:

Это довольно просто. Обертка — это библиотека, которая... ну... оборачивает что-то другое, обычно для упрощения. Возьмем Python... это довольно хороший пример, и у него есть несколько распространенных примеров. Возьмем, к примеру, API. Давайте представим, что у меня есть JSON API, который получает данные о погоде для моего текущего местоположения. Я даю ему свой почтовый индекс и получаю такой ответ:

{
    "currentTemperature": 70,
    "temperatureUnit": "F",
    "hourlyForcast": [68, 71]
}

Ничего сложного, верно? Но... я хотел бы использовать его в Python. Я мог анализирую JSON и вручную извлекаю каждое значение. Это может сработать. Но я буду использовать обертку:

from weather import get_weather
zip_code = int(input("Enter your zip code"))
weather = get_weather(zip_code)
print(weather.current_temperature)

По сути, обертка обертывания что-то другое, вроде другой (нижеуровневой) библиотеки или, в моем примере, API. Но это также может сделать его более удобным в использовании. Например, API может возвращать градусы Фаренгейта. Оболочка может взять это и иметь код для автоматического преобразования в любую единицу измерения, которую хочет пользователь.

Есть много других возможностей. Это могло бы:

  • Позволяет выполнять очень быстрые сложные математические операции в Node.js за счет того, что оболочка использует внутри высокооптимизированную библиотеку C.
  • Иметь аккуратный и чистый интерфейс API. Кроме того, представьте, что завтра изменится API. Если у вас есть оболочка, обновите ее для внесения изменений. В противном случае вам придется вручную искать свой код, чтобы обновить его... будет стыдно, если вы где-то забыли.
  • Позволяет выполнять быстрые операции с графическим процессором в Python с быстрым бэкендом на основе CUDA для оболочки.

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