← Назад к вопросам

Приведи примеры декларативных языков

1.7 Middle🔥 141 комментариев
#JavaScript Core

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Примеры декларативных языков программирования и разметки

Декларативное программирование — это парадигма, в которой программист описывает ЧТО должна делать программа, а не КАК (последнее характерно для императивного подхода). Код определяет желаемый результат, а детали реализации скрыты. Вот ключевые категории и примеры.

1. Языки разметки и данные

Эти языки чисто декларативны: они описывают структуру и содержание.

  • HTML (HyperText Markup Language) — основа веб-страниц. Он объявляет элементы (заголовки, параграфы, ссылки), но не указывает последовательность шагов для их отрисовки.

    <article>
        <h1>Заголовок статьи</h1>
        <p>Это абзац текста с <a href="#">ссылкой</a>.</p>
        <ul>
            <li>Элемент списка 1</li>
            <li>Элемент списка 2</li>
        </ul>
    </article>
    
  • XML (eXtensible Markup Language) и JSON (JavaScript Object Notation) — используются для структурирования и передачи данных.

    {
      "user": {
        "name": "Иван",
        "age": 30,
        "skills": ["JavaScript", "React", "TypeScript"]
      }
    }
    
    **SQL** также часто относят сюда, так как он декларативно описывает, какие данные нужны.

  • CSS (Cascading Style Sheets) — яркий пример. Вы описываете стили для элементов, а браузер сам вычисляет, как их применить.
    .button {
        background-color: #4CAF50;
        border: none;
        border-radius: 8px;
        padding: 12px 24px;
        color: white;
    }
    

2. Функциональные языки программирования

Хотя они часто смешивают парадигмы, их ядро декларативно, основано на выражениях и отсутствии изменяемого состояния.

  • Haskell — эталонный чисто функциональный язык. Программа — это совокупность функций и преобразований.

    -- Объявление функции для вычисления факториала
    factorial 0 = 1
    factorial n = n * factorial (n - 1)
    
    -- Использование функции высшего порядка map
    squares = map (^2) [1, 2, 3, 4, 5] -- Результат: [1,4,9,16,25]
    
  • Elm — функциональный язык для веб-разработки (компилируется в JS), известный своей строгой моделью и предсказуемостью.

    -- Объявление модели и функции обновления состояния
    type Msg = Increment | Decrement
    
    update msg model =
        case msg of
            Increment -> model + 1
            Decrement -> model - 1
    

3. Логические языки программирования

Основаны на формальной логике (исчисление предикатов). Программа — набор фактов и правил, а выполнение — поиск решений, удовлетворяющих запросу.

  • Prolog — классический представитель. Программист определяет знания (факты и правила), а движок языка находит ответы на вопросы через логический вывод.
    /* Факты */
    родитель(мария, иван).
    родитель(сергей, иван).
    родитель(иван, анна).
    
    /* Правила */
    дедушка(X, Y) :- родитель(X, Z), родитель(Z, Y).
    сестра(X, Y) :- родитель(Z, X), родитель(Z, Y), X \= Y.
    
    /* Запрос к системе: "Кто дедушка Анны?" */
    ?- дедушка(X, анна).
    % Ответ системы: X = сергей
    

4. Языки запросов к базам данных

  • SQL (Structured Query Language) — самый известный пример. Вы описываете, какие данные нужно выбрать, обновить или сгруппировать, а СУБД оптимизирует и выполняет план запроса.
    -- Декларативный запрос: "Найди имена и отделы сотрудников с зарплатой > 50000"
    SELECT name, department
    FROM employees
    WHERE salary > 50000
    ORDER BY name;
    

5. Современные DSL (Domain-Specific Languages) и инструменты

Многие современные инструменты предоставляют дек

Приведи примеры декларативных языков | PrepBro