|
Журнал «Компьютерра» 2006 № 10 (630) 14 марта 2006 годаСледует отметить важную особенность метапрограммирования: любая метапрограмма определяет не одну конкретную программу, а целый класс. Ниже приведен пример метапрограммы, которая определяет класс всех документов HTML, содержащих произвольное число параграфов. Текст метапрограммы (ASP.NET, С#) заключен между специальными операторами <%...%> и <%=...%>. <HTML> <BODY> <%foreach(Paragraph p in Document) {%> <p> <%=p.Content%> </p> <%}%> </BODY> </HTML> Проектирование DSL Создание языка предметной области начинается с этапа моделирования данных той информации, которая будет впоследствии записана в терминах DSL. Для простоты предположим, что нам необходимо разработать DSL, на котором можно описать структуру статьи для журнала «Компьютерра». Предметная область этой задачи включает в себя понятия статья, раздел и подраздел[Понятие «подраздел», конечно же, является избыточным, но кому нужны эти скучные профессиональные детали?]. Для статьи характерны название, автор и некоторая структура, включающая в себя разделы статьи ...» |
Код для вставки книги в блог HTML
phpBB
текст
|
|