December 29, 2005

Language Oriented Programming

Стаття Мартіна Фаулера
Eng - Language Workbenches: The Killer-App for Domain Specific Languages?
Rus - Языковой инструментарий: новая жизнь языков предметной области

Мовноорієнтоване програмування - стиль програмування на основі створення програми за допомогою предметноорієнтованої мови.
Мовний інструментарій - загальний термін для всіх видів програм, які розроблено за допомогою об'єктно-орієнтовного програмування.

В статті робиться розділяння абстракції та конфігурації. Абстракція предаставляє собою бібліотеку класів і може використовуватись без змін у різних проектах, тодя як конфігурація специфічна для кожного проекту, її можна виділити в конфігураційний XML, але в статті обґрунтовується думка, що доцільніше для цього все ж використовувати спеціальний синтаксис (Domain Specific Language, DSL) - більш читабельно.

Внутрішній DSL - в якості конфігураційної мови вибирається мова, на якій написаний весь проект (C#) , але обменежа множина функцій цієї мови використовується (тільки окремі класи і методи).
Зовнішній DSL - спеціально розроблена дуже проста мова.

«Всяка задача стає тривіальною, якщо її сформулювати адекватною мовою» І. М. Гельфанд

No comments: