Санкт-Петербургский государственный университет
Опубликован: 04.12.2007 | Доступ: свободный | Студентов: 2775 / 349 | Оценка: 4.30 / 3.65 | Длительность: 16:28:00
ISBN: 978-5-94774-823-9
Лекция 11:

О строении визуальных языков

< Лекция 10 || Лекция 11: 1234 || Лекция 12 >

Семантика

При создании DSL, после того, как определены конструкции языка и правила, по которым они составляют тексты, определяется смысл этих конструкций, то есть их проекции в предметную область языка. В примере, представленном на рис. 11.3, рис. 11.4, в область семантики попадают определения компоненты, порта и интерфейса, которые давались в предыдущих лекциях. Точнее, семантическая часть этих определений, где рассказывается, что они означают, а не та, где говорится, что, например, порт - это конструкция UML, которая входит в компоненту, может иметь имя, множественность, к ней присоединяются интерфейсы и т. д. Это - синтаксическое определение. А вот когда объясняется, что порт - это абстракция точки соединения компоненты с внешним миром, а также с элементами внутренней структуры компоненты, что порты в UML очень похожи на разъемы аппаратных узлов и т. д., то речь идет о семантике этой конструкции.

Далее, семантика конструкций визуального языка должна еще более уточняться в случае, когда по визуальным спецификациям генерируется программный код. Здесь в предметную область языка моделирования попадает платформа реализации системы - конструкции языка моделируют не только абстракции бизнес-области, но также и абстракции исполнения на вычислителе. Такая семантика носит названия исполняемой семантики (executable semantic4Этот термин уже неоднократно использовался в других лекциях. Теперь он получил, наконец, объяснение. ). Так, например, множественный порт может переходить в массив, где имя массива соответствует имени порта, ячейка массива соответствует экземпляру порта, а значение ячейки содержит указатель на другой экземпляр порта, с которым соединяется данный. Исполняемой семантикой конструкции UML "класс" является класс в языках С++, С#, Java и т. д.

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

Прагматика

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

Внимательный читатель наверняка обратит внимание на то, что определение прагматики "втянуло" в себя и метод использования визуального языка и программные инструменты поддержки - составные части определения средств визуального моделирования, которое давалось в начале курса. Фактически, это два разных взгляда на одно и то же.

Контрольные вопросы

  1. Дайте определение понятиям "текст" и "язык".
  2. Что такое предметная область языка, а также его пользователь?
  3. Дайте определение синтаксиса, семантики и прагматики языка. Приведите свои примеры.
  4. Что такое конструкция языка и почему в лекции оно используется вместо понятия "знак"?
  5. Зачем понадобилось разбивать синтаксис визуальных языков на абстрактный, конкретный и служебный? Приведите примеры из других областей, где такое разделение уместно.
  6. Дайте определение абстрактному синтаксису.
  7. Перечислите формальные средства, которые используются для спецификации абстрактного синтаксиса.
  8. Что такое конкретный синтаксис?
  9. Перечислите и охарактеризуйте способы, которые можно использовать для его задания. Объясните, в каких случаях, по вашему мнению, использование каждого из них оправдано.
  10. Расскажите, что можно отнести к конкретному синтаксису языков программирования.
  11. Что такое служебный синтаксис?
  12. Какой способ является наиболее распространенным для описания служебного синтаксиса визуальных языков? Каковы его преимущества перед хранением визуальных моделей в закрытом формате?
  13. Расскажите, зачем, на ваш взгляд, нужен стандарт XMI.
  14. Расскажите о спецификации диаграммной информации, в том числе приведите аргументы "за" и "против" стандартных форматов диаграммных представлений визуальных моделей.
  15. Почему при экспорте UML-диаграмм в средства работы с векторной графикой (CorelDraw, Potoshop и пр) граф модели не нужен?
  16. Приведите пример синтаксического и семантического определения конструкции какого-либо языка, произвольного понятия. Какие определения (в науке, в жизни, на экзамене, наконец) вы склонны давать сами - синтаксические или семантические?
  17. Что такое исполняемая семантика визуального языка? Что значит, что некоторая исполняемая платформа (например, Java-машина) попадает в предметную область визуального языка?
  18. Что является исполняемой семантикой состояния, перехода, сообщения (приема и посылки) в диаграммах конечных автоматов UML (вспомните лекции про системы реально времени)?
  19. Правда ли, что UML строго фиксирует исполняемую семантику своих конструкций?
  20. Расскажите о прагматике визуальных языков.
  21. Как можно использовать диаграммы случав использования для задания прагматики DSL? Приведите свой пример.
< Лекция 10 || Лекция 11: 1234 || Лекция 12 >
Ольга Зырянова
Ольга Зырянова

Здравствуйте, не могу найти ссылку на скачивание курса  «Визуальное моделирование: теория и практика»

 

Номер платежа 6400454020565

Анна Митюрёва
Анна Митюрёва

http://www.intuit.ru/studies/courses/1041/218/info

С мобильного приложения доступ есть, а через сайт не отображается. Печально =(