Предметно-орієнтована мова програмування (англ. Domain-specific language, DSL) — мова програмування, призначена для вирішення задач конкретної предметної галузі, яка дає особливе уявлення про проблему або специфічні методи її вирішення. Протилежністю предметно-орієнтованих мов є мови програмування загального призначення. Комп'ютерні мови спеціального призначення завжди існували в комп'ютерну епоху, але термін «предметно-орієнтована мова програмування», став більш популярним у зв'язку з розвитком моделювання у певних предметних галузях. Простіші предметно-орієнтовані мови програмування, особливо ті, що використовуються однією програмою, іноді неофіційно називають міні-мовами.
Використання
Розробка та використання відповідних предметно-орієнтованих мов програмування є ключовою частиною інженерії деяких галузей, де використання таких мов, придатних для відповідного типу задач може бути найоптимальнішим розв'язком проблеми. Мовно-орієнтоване програмування розглядає створення мов спеціального призначення для вираження проблем як стандартну частину процесу вирішення проблеми. Створення мови, спеціально для певного завдання (з програмним забезпеченням для її підтримки), замість повторного використання існуючої мови, може бути доцільним, якщо мова дозволяє чіткіше виразити певний тип проблеми чи рішення, ніж це дозволяє існуюча мова, і тип проблеми, про яку йдеться, з'являється досить часто. З прагматичної точки зору, предметно-орієнтована мова програмування може бути спеціалізованою для певної проблемної області, для конкретного способу подання проблеми, для конкретної техніки вирішення задачі або інших аспектів предметної області.
Загальний огляд
Предметно-орієнтована мова створена спеціально для вирішення проблем у певній сфері та не призначена для вирішення проблем поза нею (хоча це може бути технічно можливо). А от, мови загального призначення створюються для вирішення проблем у багатьох областях.
Межа між мовами загального призначення та мовами, специфічними для конкретних завдань, не завжди чітка, оскільки мова може мати спеціалізовані функції для певної задачі, але може бути застосована ширше, або навпаки, в принципі, може мати широке застосування, але на практиці використовується переважно для конкретних задач. Наприклад, спочатку Perl був розроблений як мова обробки тексту, але пізніше переважно використовувалася як мова програмування загального призначення. Навпаки, PostScript — це повна [en], і в принципі може використовуватися для будь-якого завдання, але на практиці вузько використовується як мова опису сторінки.
Предметно-орієнтована мова програмування є десь між маленькими мовами програмування та скриптовими мовами програмування, і часто використовується подібно до бібліотек мов програмування. Межі між цими поняттями досить розмиті, так само, як межі між скриптовими мовами та мовами загального призначення.
Деякі предметно-орієнтовані мови програмування з часом розширюються і включають повнофункціональні інструменти мови програмування, що ще більше ускладнює питання про те, чи є мова предметно-орієнтованою чи ні. Хорошим прикладом є функціональна мова XSLT, спеціально розроблена для перетворення одного графіку XML в інший, який був розширений з моменту його створення, щоб дозволити (особливо у версії 2.0) різні форми взаємодії з файловою системою, маніпулювання рядками та датами, введення даних.
Підводячи підсумок, можна навести таку аналогію: дуже маленька мова схожа на ніж, яким можна користуватися тисячами різних способів — від вирубки їжі до вирубки дерев. Предметно-орієнтована мова, схожа на електричну дриль: це потужний інструмент із широким спектром використання, але з певним контекстом, а саме — пробиванням дірок у певному предметі. Мова загального призначення — це повний робочий стіл із різноманітними інструментами, призначеними для виконання різноманітних завдань. Предметно-орієнтовані мови програмування повинні використовуватися програмістами, тоді, коли дивлячись на своє поточне завдання, вони розуміють, що їм потрібна краща деталізація, і конкретна предметно-орієнтована мова програмування забезпечує саме цей потрібний стек технологій.
Прикладами предметно-орієнтованих мов є мови виразів і макросів в електронних таблицях, мова регулярних виразів, мова граматики Yacc генератора парсерів тощо.
Порівняно з мовами програмування загального призначення, DSL близька до описових мов, як-от HTML, XML. Вона має специфічні особливості порівняно з мовами загального призначення, а саме:
- абстракції DSL забезпечують визначення концепцій і абстрактних понять у предметній області;
- синтаксис мови DSL може надавати засоби природного опису понять домену і запобігати синтаксичній неузгодженості, що буває при використанні мови загального призначення;
- перевірка опису в DSL вимагає статичних аналізаторів, що можуть знайти більше помилок, ніж аналізатори загального призначення, і дати повідомлення про них цією ж мовою, що є більш зрозумілим для фахівців у предметній області;
- оптимізація коду за описом в DSL базується на знаннях, що не є доступними компілятору з мови загального призначення;
- інструменти підтримки DSL потребують відповідного оточення, наприклад, середовища, редактора, контролера версій тощо.
Приклади
Приклади предметно-орієнтованих мов включають HTML для створення макету сайту, Logo для олівцеподібного малювання, мови опису апаратних засобів Verilog та VHDL, MATLAB та GNU Octave для виконання математичних розрахунків, Mathematica, Maple та Maxima для проведення аналітичних та числових обчислень і побудови графіків, [en] для реактивних та розподільних систем, формул та макросів електронних таблиць, SQL для запитів до реляційних баз даних, YACC для створення синтаксичного аналізу, регулярних виразів для лексичного аналізу, [en] для створення мов діаграм, Csound для синтезу звуку та музики, мови введення GraphViz та GrGen, програмне забезпечення пакетів, що використовуються для компонування та переписування графіків, , яка використовується для Terraform та інших інструментів [en] .
GameMaker Language
Скриптова мова GML, яка використовується ігровим рушієм GameMaker Studio — це предметно-орієнтована мова програмування, яка орієнтована на програмістів початківців, для полегшення вивчення програмування. Хоча ця мова є сумішшю кількох мов, включаючи Delphi, та BASIC, існує недолік структур, типів даних та інших функцій, які наявні у повноцінної мови програмування. Багато вбудованих функцій є «пісочницею» для зручності перенесення. Мова в першу чергу допомагає будь-кому легко її засвоїти та розробити гру.
Мова розмітки ColdFusion
Скриптова мова ColdFusion — це ще один приклад предметно-орієнтованої мови для вебсайтів, які працюють на основі баз даних. Ця скриптова мова використовується для об'єднання таких мов та послуг, як Java, .NET, C++, SMS, електронна пошта, сервери електронної пошти, http, ftp, служби каталогів та файлові системи для використання на вебсайтах.
Мова розмітки ColdFusion (CFML) містить набір тегів, які можна використовувати на сторінках ColdFusion для взаємодії з джерелами даних, маніпулювання даними та відображення результатів. Синтаксис тегів CFML подібний до синтаксису елементів HTML.
Erlang OTP
Erlang Open Telecom Platform спочатку була розроблена для використання всередині Ericsson як предметно-орієнтована мова. Сама мова пропонує платформу бібліотек для створення кінцевих автоматів, загальних серверів та менеджерів подій, які швидко дозволяють інженерам розгортати програми або підтримувати бібліотеки, які, як було показано в галузевих тестах, перевершують інші мови, призначених для різних предметних областей, такі як C та . Зараз мова офіційно відкрита і її можна завантажити з їхнього вебсайту.
FilterMeister
— це середовище програмування з мовою програмування, засноване на C, з конкретною метою створення плагінів фільтра обробки зображень, сумісних із Photoshop. FilterMeister працює як плагін Photoshop, і він може завантажувати та виконувати скрипти або компілювати та експортувати їх як незалежні плагіни. Хоча мова FilterMeister відтворює значну частину мови C, вона містить лише ті функції, які можна використовувати в контексті плагінів Photoshop, і додає ряд специфічних функцій, корисних лише у цій конкретній галузі.
Використання в програмній інженерії
Існує великий інтерес до предметно-орієнтованих мов програмування для підвищення продуктивності та якості програмного забезпечення. Предметно-орієнтована мова може забезпечити надійний набір інструментів для ефективної інженерії програмного забезпечення. Такі інструменти починають пробиватися в розвиток важливих систем програмного забезпечення.
Прикладом цього є Software Cost Reduction Toolkit. Набір інструментів — це набір утиліт, включаючи редактор специфікацій для створення специфікації вимог, браузер діаграми для відображення змінних залежностей, перевірка узгодженості для виявлення відсутніх випадків у добре сформованих формулах у специфікаціях, перевірка моделі та автоматизований доказ теорем для перевірки властивості програми відповідно до специфікацій та генератор інваріантів, який автоматично будує інваріанти на основі конкретних вимог.
Новішою розробкою є [en], інтегрована методологія інженерного програмного забезпечення, заснована переважно на створенні, оптимізації та використанні предметно-орієнтованих мов.
Метакомпілятори
Доповнення до мовно-орієнтованого програмування, як і до всіх інших форм предметно-орієнтованих мов, є клас засобів написання компіляторів, які називаються [en]. Метакомпілятор не тільки корисний для генерації синтаксичних аналізів та генераторів коду для предметно-орієнтованих мов, але сам метакомпілятор компілює предметно-орієнтовану метамову, спеціально розроблену для області метапрограмування.
Крім синтаксичного аналізу предметно-орієнтованих мов, метакомпілятори корисні для створення широкого спектру інструментів програмного забезпечення та аналізу. Методологія метакомпілятора часто зустрічається в системах трансформації програм.
Метакомпілятори, які зіграли значну роль як в інформатиці, так і в комп'ютерній промисловості, включають Meta-II та його нащадка TreeMeta.
Unreal Engine до 4-ї версії та інші ігри
Unreal і Unreal Tournament представили мову під назвою UnrealScript. Це дозволило швидко розвивати модифікації порівняно з конкурентом Quake (який використовує двигун Id Tech 2). Двигун Id Tech використовував стандартний код C, це означає, що C потрібно вивчити та належним чином застосувати, тоді як UnrealScript був оптимізований для зручності використання та ефективності. Подібним чином, при розробці новітніх ігор з'явилися власні орієнтовані мови. Ще одним поширеним прикладом є Lua для створення скриптів.
Мови статистичного моделювання
Статистичне моделювання розробило предметно-орієнтовані мови, такі як R (реалізація мови S), [en], [en] та [en]. Ці мови забезпечують синтаксис для опису байєсової моделі та генерують метод її вирішення за допомогою моделювання.
Gherkin
[en] — це мова, призначена для визначення тестових випадків для перевірки поведінки програмного забезпечення, не вказуючи, як ця поведінка реалізована. Він призначений для читання та використання людьми, які не є кваліфікованими програмістами, з використанням синтаксису природної мови та лінійно-орієнтованого дизайну. Потім тести, визначені за допомогою Gherkin, повинні бути реалізовані загальною мовою програмування.
Інші приклади
Інші яскраві приклади предметно-орієнтованих мов програмування:
Переваги та недоліки
Переваги предметно-орієнтованих мов програмування
- Предметно-орієнтовані мови програмування дозволяють написати рішення на рівні абстракції проблемної області. Ідея полягає в тому, що самі експерти певної галузі можуть розуміти, перевіряти, змінювати та часто навіть розробляти програми на предметно-орієнтованих мовах, хоча не мають кваліфікації в програмуванні.
- Предметно-орієнтовані мови програмування забезпечують перевірку безпеки мовних конструкцій, які використовуються. Поки мовні конструкції в безпеці, будь-яку частину коду, написану ними, можна вважати безпечною.
- Предметно-орієнтовані мови можуть допомогти переносити розвиток бізнесу інформаційних систем від традиційних розробників програмного забезпечення до більшої групи експертів у певній галузі, які (незважаючи на те, що мають менше технічних знань) мають більш глибокі знання про дану галузь.
- Предметно-орієнтовані мови програмування легше вивчати, враховуючи їх обмежену сферу застосування.
Недоліки предметно-орієнтованих мов програмування
- Вартість вивчення нової мови порівняно з її обмеженим застосуванням.
- Витрати на розробку, впровадження та підтримку конкретної мови, а також інструменти, необхідні для її розробки (IDE).
- Пошук, встановлення та підтримка належного набору технологій з певної DSL.
- Потенційна втрата ефективності процесора в порівнянні з програмним забезпеченням написаним вручну.
- Поширення подібних нестандартних предметно-орієнтованих мов, наприклад, DSL, що використовується в одній страховій компанії, проти DSL, що використовується в іншій страховій компанії.
- Нетехнічним експертам у певній галузі може бути важко самостійно писати або змінювати програми написані на DSL.
- Програмістам, які не є експертами в певній галузі, в якій для написання програм використовується DSL, може бути важко самостійно писати або змінювати програми.
- Підвищена складність інтеграції DSL з іншими компонентами ІТ-системи (порівняно з інтеграцією мов загального призначення).
- Невелика кількість професіоналів, які знають конкретну предметно-орієнтовану мову програмування, робить оплату праці досить високою.
- Важче знайти приклади коду.
Див. також
Примітки
- . Архів оригіналу за 23 лютого 2014. Процитовано 6 лютого 2014.
- . StudFiles (рос.). Архів оригіналу за 9 листопада 2021. Процитовано 9 листопада 2021.
- . ko.com.ua (рос.). Архів оригіналу за 16 жовтня 2021. Процитовано 16 жовтня 2021.
- . docs.yoyogames.com. Архів оригіналу за 9 листопада 2021. Процитовано 9 листопада 2021.
- Огляд пісочниці | рішення (укр.). Процитовано 16 жовтня 2021.
- . members.chello.at. Архів оригіналу за 14 березня 2021. Процитовано 9 листопада 2021.
- . ptolemy.berkeley.edu. Архів оригіналу за 16 жовтня 2021. Процитовано 16 жовтня 2021.
- . ru.knowledgr.com. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
- . dbpedia.org. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
- . Независимое тестирование программного обеспечения - a1qa (ru-RU) . Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
- . games.stanford.edu. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021.
- (PDF). web.archive.org. 24 липня 2011. Архів оригіналу (PDF) за 24 липня 2011. Процитовано 9 листопада 2021.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Predmetno oriyentovana mova programuvannya angl Domain specific language DSL mova programuvannya priznachena dlya virishennya zadach konkretnoyi predmetnoyi galuzi yaka daye osoblive uyavlennya pro problemu abo specifichni metodi yiyi virishennya Protilezhnistyu predmetno oriyentovanih mov ye movi programuvannya zagalnogo priznachennya Komp yuterni movi specialnogo priznachennya zavzhdi isnuvali v komp yuternu epohu ale termin predmetno oriyentovana mova programuvannya stav bilsh populyarnim u zv yazku z rozvitkom modelyuvannya u pevnih predmetnih galuzyah Prostishi predmetno oriyentovani movi programuvannya osoblivo ti sho vikoristovuyutsya odniyeyu programoyu inodi neoficijno nazivayut mini movami VikoristannyaRozrobka ta vikoristannya vidpovidnih predmetno oriyentovanih mov programuvannya ye klyuchovoyu chastinoyu inzheneriyi deyakih galuzej de vikoristannya takih mov pridatnih dlya vidpovidnogo tipu zadach mozhe buti najoptimalnishim rozv yazkom problemi Movno oriyentovane programuvannya rozglyadaye stvorennya mov specialnogo priznachennya dlya virazhennya problem yak standartnu chastinu procesu virishennya problemi Stvorennya movi specialno dlya pevnogo zavdannya z programnim zabezpechennyam dlya yiyi pidtrimki zamist povtornogo vikoristannya isnuyuchoyi movi mozhe buti docilnim yaksho mova dozvolyaye chitkishe viraziti pevnij tip problemi chi rishennya nizh ce dozvolyaye isnuyucha mova i tip problemi pro yaku jdetsya z yavlyayetsya dosit chasto Z pragmatichnoyi tochki zoru predmetno oriyentovana mova programuvannya mozhe buti specializovanoyu dlya pevnoyi problemnoyi oblasti dlya konkretnogo sposobu podannya problemi dlya konkretnoyi tehniki virishennya zadachi abo inshih aspektiv predmetnoyi oblasti Zagalnij oglyadPredmetno oriyentovana mova stvorena specialno dlya virishennya problem u pevnij sferi ta ne priznachena dlya virishennya problem poza neyu hocha ce mozhe buti tehnichno mozhlivo A ot movi zagalnogo priznachennya stvoryuyutsya dlya virishennya problem u bagatoh oblastyah Mezha mizh movami zagalnogo priznachennya ta movami specifichnimi dlya konkretnih zavdan ne zavzhdi chitka oskilki mova mozhe mati specializovani funkciyi dlya pevnoyi zadachi ale mozhe buti zastosovana shirshe abo navpaki v principi mozhe mati shiroke zastosuvannya ale na praktici vikoristovuyetsya perevazhno dlya konkretnih zadach Napriklad spochatku Perl buv rozroblenij yak mova obrobki tekstu ale piznishe perevazhno vikoristovuvalasya yak mova programuvannya zagalnogo priznachennya Navpaki PostScript ce povna en i v principi mozhe vikoristovuvatisya dlya bud yakogo zavdannya ale na praktici vuzko vikoristovuyetsya yak mova opisu storinki Predmetno oriyentovana mova programuvannya ye des mizh malenkimi movami programuvannya ta skriptovimi movami programuvannya i chasto vikoristovuyetsya podibno do bibliotek mov programuvannya Mezhi mizh cimi ponyattyami dosit rozmiti tak samo yak mezhi mizh skriptovimi movami ta movami zagalnogo priznachennya Deyaki predmetno oriyentovani movi programuvannya z chasom rozshiryuyutsya i vklyuchayut povnofunkcionalni instrumenti movi programuvannya sho she bilshe uskladnyuye pitannya pro te chi ye mova predmetno oriyentovanoyu chi ni Horoshim prikladom ye funkcionalna mova XSLT specialno rozroblena dlya peretvorennya odnogo grafiku XML v inshij yakij buv rozshirenij z momentu jogo stvorennya shob dozvoliti osoblivo u versiyi 2 0 rizni formi vzayemodiyi z fajlovoyu sistemoyu manipulyuvannya ryadkami ta datami vvedennya danih Pidvodyachi pidsumok mozhna navesti taku analogiyu duzhe malenka mova shozha na nizh yakim mozhna koristuvatisya tisyachami riznih sposobiv vid virubki yizhi do virubki derev Predmetno oriyentovana mova shozha na elektrichnu dril ce potuzhnij instrument iz shirokim spektrom vikoristannya ale z pevnim kontekstom a same probivannyam dirok u pevnomu predmeti Mova zagalnogo priznachennya ce povnij robochij stil iz riznomanitnimi instrumentami priznachenimi dlya vikonannya riznomanitnih zavdan Predmetno oriyentovani movi programuvannya povinni vikoristovuvatisya programistami todi koli divlyachis na svoye potochne zavdannya voni rozumiyut sho yim potribna krasha detalizaciya i konkretna predmetno oriyentovana mova programuvannya zabezpechuye same cej potribnij stek tehnologij Prikladami predmetno oriyentovanih mov ye movi viraziv i makrosiv v elektronnih tablicyah mova regulyarnih viraziv mova gramatiki Yacc generatora parseriv tosho Porivnyano z movami programuvannya zagalnogo priznachennya DSL blizka do opisovih mov yak ot HTML XML Vona maye specifichni osoblivosti porivnyano z movami zagalnogo priznachennya a same abstrakciyi DSL zabezpechuyut viznachennya koncepcij i abstraktnih ponyat u predmetnij oblasti sintaksis movi DSL mozhe nadavati zasobi prirodnogo opisu ponyat domenu i zapobigati sintaksichnij neuzgodzhenosti sho buvaye pri vikoristanni movi zagalnogo priznachennya perevirka opisu v DSL vimagaye statichnih analizatoriv sho mozhut znajti bilshe pomilok nizh analizatori zagalnogo priznachennya i dati povidomlennya pro nih ciyeyu zh movoyu sho ye bilsh zrozumilim dlya fahivciv u predmetnij oblasti optimizaciya kodu za opisom v DSL bazuyetsya na znannyah sho ne ye dostupnimi kompilyatoru z movi zagalnogo priznachennya instrumenti pidtrimki DSL potrebuyut vidpovidnogo otochennya napriklad seredovisha redaktora kontrolera versij tosho PrikladiPrikladi predmetno oriyentovanih mov vklyuchayut HTML dlya stvorennya maketu sajtu Logo dlya olivcepodibnogo malyuvannya movi opisu aparatnih zasobiv Verilog ta VHDL MATLAB ta GNU Octave dlya vikonannya matematichnih rozrahunkiv Mathematica Maple ta Maxima dlya provedennya analitichnih ta chislovih obchislen i pobudovi grafikiv en dlya reaktivnih ta rozpodilnih sistem formul ta makrosiv elektronnih tablic SQL dlya zapitiv do relyacijnih baz danih YACC dlya stvorennya sintaksichnogo analizu regulyarnih viraziv dlya leksichnogo analizu en dlya stvorennya mov diagram Csound dlya sintezu zvuku ta muziki movi vvedennya GraphViz ta GrGen programne zabezpechennya paketiv sho vikoristovuyutsya dlya komponuvannya ta perepisuvannya grafikiv yaka vikoristovuyetsya dlya Terraform ta inshih instrumentiv en GameMaker Language Skriptova mova GML yaka vikoristovuyetsya igrovim rushiyem GameMaker Studio ce predmetno oriyentovana mova programuvannya yaka oriyentovana na programistiv pochatkivciv dlya polegshennya vivchennya programuvannya Hocha cya mova ye sumishshyu kilkoh mov vklyuchayuchi Delphi C ta BASIC isnuye nedolik struktur tipiv danih ta inshih funkcij yaki nayavni u povnocinnoyi movi programuvannya Bagato vbudovanih funkcij ye pisochniceyu dlya zruchnosti perenesennya Mova v pershu chergu dopomagaye bud komu legko yiyi zasvoyiti ta rozrobiti gru Mova rozmitki ColdFusion Skriptova mova ColdFusion ce she odin priklad predmetno oriyentovanoyi movi dlya vebsajtiv yaki pracyuyut na osnovi baz danih Cya skriptova mova vikoristovuyetsya dlya ob yednannya takih mov ta poslug yak Java NET C SMS elektronna poshta serveri elektronnoyi poshti http ftp sluzhbi katalogiv ta fajlovi sistemi dlya vikoristannya na vebsajtah Mova rozmitki ColdFusion CFML mistit nabir tegiv yaki mozhna vikoristovuvati na storinkah ColdFusion dlya vzayemodiyi z dzherelami danih manipulyuvannya danimi ta vidobrazhennya rezultativ Sintaksis tegiv CFML podibnij do sintaksisu elementiv HTML Erlang OTP Erlang Open Telecom Platform spochatku bula rozroblena dlya vikoristannya vseredini Ericsson yak predmetno oriyentovana mova Sama mova proponuye platformu bibliotek dlya stvorennya kincevih avtomativ zagalnih serveriv ta menedzheriv podij yaki shvidko dozvolyayut inzheneram rozgortati programi abo pidtrimuvati biblioteki yaki yak bulo pokazano v galuzevih testah perevershuyut inshi movi priznachenih dlya riznih predmetnih oblastej taki yak C ta C Zaraz mova oficijno vidkrita i yiyi mozhna zavantazhiti z yihnogo vebsajtu FilterMeister ce seredovishe programuvannya z movoyu programuvannya zasnovane na C z konkretnoyu metoyu stvorennya plaginiv filtra obrobki zobrazhen sumisnih iz Photoshop FilterMeister pracyuye yak plagin Photoshop i vin mozhe zavantazhuvati ta vikonuvati skripti abo kompilyuvati ta eksportuvati yih yak nezalezhni plagini Hocha mova FilterMeister vidtvoryuye znachnu chastinu movi C vona mistit lishe ti funkciyi yaki mozhna vikoristovuvati v konteksti plaginiv Photoshop i dodaye ryad specifichnih funkcij korisnih lishe u cij konkretnij galuzi Vikoristannya v programnij inzheneriyi Isnuye velikij interes do predmetno oriyentovanih mov programuvannya dlya pidvishennya produktivnosti ta yakosti programnogo zabezpechennya Predmetno oriyentovana mova mozhe zabezpechiti nadijnij nabir instrumentiv dlya efektivnoyi inzheneriyi programnogo zabezpechennya Taki instrumenti pochinayut probivatisya v rozvitok vazhlivih sistem programnogo zabezpechennya Prikladom cogo ye Software Cost Reduction Toolkit Nabir instrumentiv ce nabir utilit vklyuchayuchi redaktor specifikacij dlya stvorennya specifikaciyi vimog brauzer diagrami dlya vidobrazhennya zminnih zalezhnostej perevirka uzgodzhenosti dlya viyavlennya vidsutnih vipadkiv u dobre sformovanih formulah u specifikaciyah perevirka modeli ta avtomatizovanij dokaz teorem dlya perevirki vlastivosti programi vidpovidno do specifikacij ta generator invariantiv yakij avtomatichno buduye invarianti na osnovi konkretnih vimog Novishoyu rozrobkoyu ye en integrovana metodologiya inzhenernogo programnogo zabezpechennya zasnovana perevazhno na stvorenni optimizaciyi ta vikoristanni predmetno oriyentovanih mov Metakompilyatori Dopovnennya do movno oriyentovanogo programuvannya yak i do vsih inshih form predmetno oriyentovanih mov ye klas zasobiv napisannya kompilyatoriv yaki nazivayutsya en Metakompilyator ne tilki korisnij dlya generaciyi sintaksichnih analiziv ta generatoriv kodu dlya predmetno oriyentovanih mov ale sam metakompilyator kompilyuye predmetno oriyentovanu metamovu specialno rozroblenu dlya oblasti metaprogramuvannya Krim sintaksichnogo analizu predmetno oriyentovanih mov metakompilyatori korisni dlya stvorennya shirokogo spektru instrumentiv programnogo zabezpechennya ta analizu Metodologiya metakompilyatora chasto zustrichayetsya v sistemah transformaciyi program Metakompilyatori yaki zigrali znachnu rol yak v informatici tak i v komp yuternij promislovosti vklyuchayut Meta II ta jogo nashadka TreeMeta Unreal Engine do 4 yi versiyi ta inshi igri Unreal i Unreal Tournament predstavili movu pid nazvoyu UnrealScript Ce dozvolilo shvidko rozvivati modifikaciyi porivnyano z konkurentom Quake yakij vikoristovuye dvigun Id Tech 2 Dvigun Id Tech vikoristovuvav standartnij kod C ce oznachaye sho C potribno vivchiti ta nalezhnim chinom zastosuvati todi yak UnrealScript buv optimizovanij dlya zruchnosti vikoristannya ta efektivnosti Podibnim chinom pri rozrobci novitnih igor z yavilisya vlasni oriyentovani movi She odnim poshirenim prikladom ye Lua dlya stvorennya skriptiv Movi statistichnogo modelyuvannya Statistichne modelyuvannya rozrobilo predmetno oriyentovani movi taki yak R realizaciya movi S en en ta en Ci movi zabezpechuyut sintaksis dlya opisu bajyesovoyi modeli ta generuyut metod yiyi virishennya za dopomogoyu modelyuvannya Gherkin en ce mova priznachena dlya viznachennya testovih vipadkiv dlya perevirki povedinki programnogo zabezpechennya ne vkazuyuchi yak cya povedinka realizovana Vin priznachenij dlya chitannya ta vikoristannya lyudmi yaki ne ye kvalifikovanimi programistami z vikoristannyam sintaksisu prirodnoyi movi ta linijno oriyentovanogo dizajnu Potim testi viznacheni za dopomogoyu Gherkin povinni buti realizovani zagalnoyu movoyu programuvannya Inshi prikladi Inshi yaskravi prikladi predmetno oriyentovanih mov programuvannya Emacs Lisp en OpenGL Shading Language Gradle ActionScriptPerevagi ta nedolikiPerevagi predmetno oriyentovanih mov programuvannya Predmetno oriyentovani movi programuvannya dozvolyayut napisati rishennya na rivni abstrakciyi problemnoyi oblasti Ideya polyagaye v tomu sho sami eksperti pevnoyi galuzi mozhut rozumiti pereviryati zminyuvati ta chasto navit rozroblyati programi na predmetno oriyentovanih movah hocha ne mayut kvalifikaciyi v programuvanni Predmetno oriyentovani movi programuvannya zabezpechuyut perevirku bezpeki movnih konstrukcij yaki vikoristovuyutsya Poki movni konstrukciyi v bezpeci bud yaku chastinu kodu napisanu nimi mozhna vvazhati bezpechnoyu Predmetno oriyentovani movi mozhut dopomogti perenositi rozvitok biznesu informacijnih sistem vid tradicijnih rozrobnikiv programnogo zabezpechennya do bilshoyi grupi ekspertiv u pevnij galuzi yaki nezvazhayuchi na te sho mayut menshe tehnichnih znan mayut bilsh gliboki znannya pro danu galuz Predmetno oriyentovani movi programuvannya legshe vivchati vrahovuyuchi yih obmezhenu sferu zastosuvannya Nedoliki predmetno oriyentovanih mov programuvannya Vartist vivchennya novoyi movi porivnyano z yiyi obmezhenim zastosuvannyam Vitrati na rozrobku vprovadzhennya ta pidtrimku konkretnoyi movi a takozh instrumenti neobhidni dlya yiyi rozrobki IDE Poshuk vstanovlennya ta pidtrimka nalezhnogo naboru tehnologij z pevnoyi DSL Potencijna vtrata efektivnosti procesora v porivnyanni z programnim zabezpechennyam napisanim vruchnu Poshirennya podibnih nestandartnih predmetno oriyentovanih mov napriklad DSL sho vikoristovuyetsya v odnij strahovij kompaniyi proti DSL sho vikoristovuyetsya v inshij strahovij kompaniyi Netehnichnim ekspertam u pevnij galuzi mozhe buti vazhko samostijno pisati abo zminyuvati programi napisani na DSL Programistam yaki ne ye ekspertami v pevnij galuzi v yakij dlya napisannya program vikoristovuyetsya DSL mozhe buti vazhko samostijno pisati abo zminyuvati programi Pidvishena skladnist integraciyi DSL z inshimi komponentami IT sistemi porivnyano z integraciyeyu mov zagalnogo priznachennya Nevelika kilkist profesionaliv yaki znayut konkretnu predmetno oriyentovanu movu programuvannya robit oplatu praci dosit visokoyu Vazhche znajti prikladi kodu Div takozhFahova movaPrimitki Arhiv originalu za 23 lyutogo 2014 Procitovano 6 lyutogo 2014 StudFiles ros Arhiv originalu za 9 listopada 2021 Procitovano 9 listopada 2021 ko com ua ros Arhiv originalu za 16 zhovtnya 2021 Procitovano 16 zhovtnya 2021 docs yoyogames com Arhiv originalu za 9 listopada 2021 Procitovano 9 listopada 2021 Oglyad pisochnici rishennya ukr Procitovano 16 zhovtnya 2021 members chello at Arhiv originalu za 14 bereznya 2021 Procitovano 9 listopada 2021 ptolemy berkeley edu Arhiv originalu za 16 zhovtnya 2021 Procitovano 16 zhovtnya 2021 ru knowledgr com Arhiv originalu za 17 zhovtnya 2021 Procitovano 17 zhovtnya 2021 dbpedia org Arhiv originalu za 17 zhovtnya 2021 Procitovano 17 zhovtnya 2021 Nezavisimoe testirovanie programmnogo obespecheniya a1qa ru RU Arhiv originalu za 17 zhovtnya 2021 Procitovano 17 zhovtnya 2021 games stanford edu Arhiv originalu za 17 zhovtnya 2021 Procitovano 17 zhovtnya 2021 PDF web archive org 24 lipnya 2011 Arhiv originalu PDF za 24 lipnya 2011 Procitovano 9 listopada 2021 Cya stattya ye zagotovkoyu Vi mozhete dopomogti proyektu dorobivshi yiyi Ce povidomlennya varto zaminiti tochnishim