Програмен език за конкретна област на приложение From Wikipedia, the free encyclopedia
Предметно ориентираният език за програмиране (ПОЕ) (на английски: Domain-specific language или DSL) е компютърен език, специализиран за конкретна област на приложение за разлика от езиците с общо предназначение, които могат да се ползват доста широко. Има голямо разнообразие от предметно ориентирани езици, вариращи от популярния HTML за уеб страници, до езици използвани само от един софтуер, като например MUSH soft code. ПОЕ могат да бъдат допълнително подразделени по вида език и включват: езици за маркиране, езици за моделиране (по-общо езици на спецификация) и специфични езици за програмиране. Компютърните езици със специално предназначение винаги са съществували още от зората на компютрите, но терминът „предметно ориентиран език“ е станал популярен поради нарастването на предметното моделиране. По-простите ПОЕ, особено тези, използвани от едно приложение, понякога неофициално се наричат миниезици.
Границата между езиците с общо предназначение и предметно ориентираните езици не е ясно изразена, тъй като езикът може да има специализирани характеристики за определена област, но да бъде приложим по-широко, както и обратното – може да има широко приложение, но да се използва за определена област. Например първоначално Perl е разработен като език за текстообработка, така, както и езикът AWK и shell скриптовете, но по-късно е станал език с общо предназначение. Обратният пример е с езика PostScript, който по принцип може да се използва за всяка задача, но на практика се използва като език за описание на страници.
Проектирането и използването на подходящ предметно ориентиран език (или езици) е ключова част от разработването на съответната област (домейн). Би могло да се ползва съществуващ ПОЕ или език за обща употреба или например разработване на нов ПОЕ. Езиково-ориентираното програмиране разглежда създаването на езици със специално предназначение за описването на проблеми като стандартна част от процеса на решаване на проблемите. Създаването на специфичен за областта език (със софтуер, който да го поддържа) вместо използването на съществуващ език, би могло да бъде полезно, ако езикът позволява определен тип проблем или решение да бъде изразени по-ясно.
Предметно ориентираният език е специално създаден за решаване на проблеми в определена област и не е предназначен да решава проблеми извън нея (въпреки че това може да е технически възможно). За разлика от ПОЕ, езиците с общо предназначение са създадени за решаване на проблеми в много области.
Например има езици, създадени за определен бизнес като:
Предметно ориентираният език е някъде между малък език за програмиране и скриптов език и често се използва по начин, аналогичен на библиотеките за програмиране. Границите между тези понятия са доста размити, подобно на границите между скриптовите езици и езиците с общо предназначение.
Примерите за предметно ориентирани езици включват HTML, Logo ползван за рисуване, езици за описание на хардуер Verilog и VHDL, MATLAB и GNU Octave за матрично програмиране, Mathematica, Maple и Maxima за символна математика, езици за описание на реактивни и разпределени системи, формули и макроси за електронни таблици, SQL за заявки за релационни бази данни, YACC граматики за създаване на парсери, регулярни изрази за определяне на лексери, Generic Eclipse Modeling System за създаване на езици за диаграми, Csound за синтез на звук и музика и езиците за въвеждане на GraphViz и GrGen, софтуер пакети, използвани за оформление на графики и пренаписване на графики, език за конфигурация на Hashicorp, използван за Terraform и други инструменти на Hashicorp, Puppet също има свой собствен език за конфигурация.
Скриптовият език GML, използван от GameMaker Studio, е пример за предметно ориентиран език, насочен към начинаещи програмисти, с цел по-лесно научаване основите на програмирането. Езикът е по-скоро смесица от множество езици (включително Delphi, C++ и BASIC), но липсват структури, типове данни и други характеристики на пълноценните езици за програмиране. Много от вградените функции са затворени с цел по-лесна преносимост. Езикът основно служи за улесняване на потребителите в разработването на собствени игри.
Скриптовия език на ColdFusion е друг пример за специфичен език, предназначен за уебсайтове управлявани от данни. Този скриптов език се използва за обединяване на езици и услуги като Java, .NET, C++, SMS, електронни пощи и техните сървъри, http, ftp и други услуги и файлови системи, които се ползват в уебсайтовете.
Функцията Шаблон на MediaWiki е вграден специфичен език, с основна цел поддръжката създаването на шаблони на страници и включването (включване чрез препратка) на MediaWiki страници в други страници на MediaWiki.
Други известни примери за предметно ориентирани езици включват:
Някои от недостатъците:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.