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

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

< Лекция 10 || Лекция 11: 1234 || Лекция 12 >
Аннотация: В этой лекции представлено краткое введение в семиотику: даются определения понятиям "язык" и "текст", а также объясняется, что такое синтаксис, семантика и прагматика языка. В контексте визуальных языков синтаксис подразделяется на абстрактный, конкретный (нотация) и служебный. Дается обзор различных формальных техник спецификации визуальных языков. Возможно, не вся информация этой лекции будет сразу понятна (особенно это касается формальных техник). Тогда следует вернуться к этой лекции после освоения двух следующих

Семиотика: понятия "язык" и "текст"

В контексте DSM-подхода язык и текст являются важнейшими, базовыми понятиями. Рассмотрим эти понятия, обратившись к семиотике - науке о знаковых системах (языках). Эта наука рассматривает языки и тексты в самых разных областях знания и человеческой деятельности: древние и современные языки и диалекты, литературу (современную, средневековую, античную и т. д.), символику - религиозную и культовую, - кинематограф, театр, геологические отложения, звездное небо, музыку, математику, программирование и т. д. Как писал Юрий Лотман, весь мир - это текст…

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

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

Этот подход носит название семиотики организации (organisational semiotics) и развивается в работах [11.3], [11.4]. С точки зрения этого подхода бизнес-компанию можно рассматривать как систему, которая оперирует акциями, заказами, квитанциями, кредитами и, разумеется, деньгами. Акцентируя отличие языков, текстов и знаков семиотики от IT-информации здесь отмечается, что, например, денежная банкнота - это нечто большее, чем набор букв и цифр на цветной бумаге. Она, банкнота, определяет покупательную способность ее владельца, а также состояние экономики той страны, чьей валютой она является. Например, доллары США свободно обращаются в любой стране, чего не скажешь, например, о тайских батах.

Семиотический подход обращает внимание на то, что информация в целом является огромным явлением, не сводимым только лишь к битам и байтам, к отправителю и получателю, как указывал Джон Гибсон [11.5], известный американский психолог, исследовавший зрительное восприятие.

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

Пользователь, воспринимая тексты на некотором языке, получает информацию о соответствующей  предметной области

Рис. 11.1. Пользователь, воспринимая тексты на некотором языке, получает информацию о соответствующей предметной области

И для текста, и для языка важен пользователь - тот, кто будет читать эти тексты. Тот, кто их создает, важен в меньшей степени. В самом деле, кто создал звездное небо, которое читают мореходы, астрологи, астрономы? И кстати, эти категории "пользователей" неба видят его по-разному, по-разному его читают… Тексты/языки появляются и существуют, когда у них есть пользователи. И когда пользователи уходят, и тот и другой умирают… Например, есть такой термин "мертвый язык", который обозначает язык, не имеющий живых носителей, для которых он является родным. К таким языкам относятся латынь, древнерусский, древнеегипетский, шумерский, древнегреческий и т.д. Оставшиеся письменные источники с текстами на этих языках являются предметом изучения для узких специалистов.

Вот пример "умирания" текстов из области программирования. Известно, во что превращаются исходные тексты ПО со временем, когда их давно не поддерживают. Продукт может успешно функционировать многие годы, в нем могут исправляться отдельные ошибки. Но его исходные тексты никто не компилирует целиком, никто не помнит его архитектурных решений, не знает всех его процедур, классов, модулей и т. д. В итоге, когда появляются люди, которые хотят взглянуть на проект как на целое (например, чтобы перенести его на другую исполняемую платформу, с языка COBOL на Java), часто оказывается, что многие исходные файлы потеряны, в одном проекте перемешались разные версии и т. д. Появилась даже специальная область программной инженерии под названием реинжиниринг (reengineering) [11.8], [11.9], занимающаяся изучением и трансформацией текстов старых программ (legacy software), поддержанная многочисленными программными ин струментами.

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

Предметная область языка также очень важна. Попытка применить тот или иной язык к неподходящей предметной области приводит в лучшем случае к курьезам. В частности, при разработке нового DSL нужно хорошо понимать тот целевой контекст, где язык будет применяться: процесс, в рамках которого DSL будет использоваться, те проблемы и задачи, которые язык должен решать. Например, главная проблема языка UML - это всеобщность, попытка адресоваться любому возможному применению в рамках любой области в контексте разработки ПО. Но предметная область разработки ПО очень обширна и многообразна, не существует стандартного, единого и однозначного ее описания. В итоге ключевые абстракции и понятия UML оказываются неясными и трудно постижимыми, а его внутренняя структура - сложной и запутанной. Это, в свою очередь, препятствует его практическому использованию1Я ни в коей мере не подвергаю сомнению ценноcть UML, а лишь отмечаю его проблемы, к оторые активно обсуждаются в мировом сообществе - см., например, работу [11.12]

Семиотика выделяет три измерения языка - синтаксис, семантику и прагматику. Синтаксис - это взаимосвязи знаков языка, которые определяют правила построения из них текстов. Семантика языка - это значение его знаков, их проекции в предметную область. Прагматика языка - это способы его применения пользователями. Обратившись к рис. 11.2 можно сказать, что синтаксис - это связь языка самого с собой (его знаков друг с другом), семантика - связь языка с предметной областью, а прагматика - связь языка с пользователем.

Синтаксис, семантика, прагматика

Рис. 11.2. Синтаксис, семантика, прагматика

Рассмотрим синтаксис, семантику и прагматику подробнее, применительно к визуальным языкам.

Синтаксис, семантика и прагматика являются важнейшими измерениями знаковых систем и были введены американским философом, один из основоположников семиотики, Чарльзом Морисом, в 1938 году в его знаменитой книге "Основы теории знаков" [11.7]. С тех пор эти аспекты применяются при описании и изучении самых разных знаковых систем, в том числе языков программирования и визуального моделирования ПО.
< Лекция 10 || Лекция 11: 1234 || Лекция 12 >
Анна Митюрёва
Анна Митюрёва

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

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

Светлана Ведяева
Светлана Ведяева
Россия, Саратов
Артем Барышев
Артем Барышев
Россия, Иваново