Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Специальные языки программирования

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

В процессе программирования, помимо полноценных языков, таких, как C++, C#, Java, Python и т.п., часто используются вспомогательные синтаксисы. Например, при разработке веб-приложений применяются язык разметки HTML, язык описания стилевых таблиц CSS. Назначение этих языков узкоспециально. С их помощью невозможно написать полноценную программу, но для решения особых задач они незаменимы. Например, на HTML гораздо легче написать веб-страницу, чем на C++, хотя для обработки (рендеринга) HTML нужны программы, написанные на универсальных полноценных языках (веб-сервер, веб-браузер).

Некоторые языки предназначены для программирования специфических предметных областей. Например, в рамках системы 1С трудно, хотя теоретически и возможно, создавать программы, предназначенные для решения задач, лежащих за пределами управления предприятием или бухгалтерии.

Определение 1

Предметно-ориентированными или специальными называют языки, созданные для решения специальных задач. Им противопоставляют языки общего назначения, применимые в самых разных областях, от написания мобильных приложений до программирования веб-серверов. В англоязычной традиции предметно-ориентированные языки называются domain-specific languages (DSL), что можно перевести как «языки, специфические для определенной предметной области».

Примеры специальных языков программирования:

  • HTML - для разметки веб-страниц;
  • SQL - для совершения запросов к базам данных;
  • LaTeX - для вёрстки текстовых документов, содержащих формулы и другое форматирование;
  • Prolog - для решения логических задач;
  • JSON - для описания объектов и т.п.;
  • Brainfuck - шуточный язык для упражнений в остроумии и т.п.

Программа на языке Brainfuck. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Программа на языке Brainfuck. Автор24 — интернет-биржа студенческих работ

«Специальные языки программирования» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Очень широко специальные языки применяются для написания всевозможных конфигурационных файлов. Иногда выгодно создать DSL-синтаксисы для решения часто встречающихся проблем в рамках конкретного проекта. Затраты времени на разработку вспомогательных синтаксисов компенсируются в таких случаях положительным эффектом в виде сокращения количества выполняемых вручную операций, повышения точности обработки, возможностью повторного использования кода.

Специальные языки в веб-разработке

Основными синтаксисами, применяемыми при создании веб-приложений, являются HTML, CSS и JavaScript. Все они довольно консервативны, а порой весьма громоздки. Их можно было бы оптимизировать, но это затронуло бы огромное количество пользователей, не все из которых склонны обновлять программное обеспечение. Решением является применение эффективных специальных языков, преобразуемых в стандартные в момент сборки страницы:

  • CoffeeScript позволяет писать более компактные программы, по сравнению со стандартным JavaScript, в который преобразуется путем компилирования;
  • Markdown - простой язык разметки, позволяющий писать форматированные тексты гораздо быстрее, чем на стандартном HTML; часто веб-документы пишутся на Markdown, а потом компилируются в HTML; примерно так же используется язык Pug (в прошлом Jade), где для разметки используются не тэги, а отступы;
  • Stylus, Sass, LESS - языки, облегчающие формирование стилевых таблиц; на этапе сборки компилируются в стандартный CSS.

Производительность труда при использовании перечисленных вспомогательных языков существенно повышается по сравнению с использованием обычных HTML, CSS, JavaScript.

Еще одним примером DSL могут служить современные фреймворки, такие, как Vue, React, Angular. В них разнородные синтаксисы интегрируются еще теснее, позволяя работать с меньшим количеством файлов и сокращать количество этапов сборки.

Объединение синтаксисов в фреймворке Vue. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Объединение синтаксисов в фреймворке Vue. Автор24 — интернет-биржа студенческих работ

Пример использования специального языка: Prolog

Рассмотрим один из специальных языков программирования - Prolog. Он предназначен для обработки логических высказываний и используется в исследованиях, связанных с искусственным интеллектом, обработкой текстов на естественных языках, экспертных системах, для которых свойственно использование формальной логики.

Prolog разработан в 1973 г. сотрудниками Марсельского университета во главе с Алэном Колмероэ в рамках одного из первых проектов, связанных с разработкой искусственного интеллекта. Язык предназначался для автоматического доказательства теорем. Изначально программное обеспечение было написано на языке Фортран. Название Prolog происходит от французского Programmation en Logique (программирование логики).

Prolog формирует представления о некоторой предметной области - множестве объектов, описывая их свойства и связи друг с другом в виде фактов и правил. Эти описания не являются вычислениями, но позволяют строить логические высказывания и находить их истинность или ложность. Рассмотрим пример:

likes(ellen, tennis).
likes(john, football).
likes(tom, baseball).
likes(eric, swimming).
likes(mark, reading).
clever(X) :- likes (X, reading).

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

Диалоговая консоль Prolog. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Диалоговая консоль Prolog. Автор24 — интернет-биржа студенческих работ

Дата написания статьи: 22.03.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot