#Валидность@adwat_games / #Верифицируемость@adwat_games «Текстовое моделирование»* "... Сказать "модель" — это все равно, что ничего не сказать. Это так же общо, как сказать "система" или "процесс" — совершенно непонятно, о чем пойдет дальше речь. Слово "модель" в большинстве случаев означает "описание системы", не более того. Тем не менее, меня сейчас интересуют языки моделирования — и чем более они общие, тем интересней (несмотря на множество существующих о моделировании мифов, собранных тут: http://www.eclipsecon.org/2009/sessions?id=358). Есть разные направления в моделировании: — мультифизика (http://www.modelica.org/) — архитектурное: SysML, UML 2.0, AADL (http://www.jot.fm/issues/issue_2009_01/column1/). — ежели речь идет о софте — то вплоть до генерации кода (http://www.openarchitectureware.org/). — текстовое моделирование DSL (http://www.xtext.org/, http://www.slideshare.net/sefftinge/xtext-eclipse-con, видеопрезентация http://www.infoq.com/presentations/Textual-DSL-Markus-Voelter). Определение (из http://www.infoq.com/presentations/Textual-DSL-Markus-Voelter): A Domain Specific Language (DSL) is a focused, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are tailored to the stakeholder who specify that particular concern. DSL могут быть классифицированы многими способами: configuration vs customisation, internal vs external (встроенные в какой-то другой язык типа Ruby или независимые от другого языка), graphical vs textual. Когда нужны графические DSL? Когда есть структуры зависимости, временнЫе аспекты, какой-нибудь "поток". Но и в этом случае есть определенные альтернативы: визуализация подмножества модели (обычно только для чтения, зато с великолепным автоформатированием), использовать различные методы моделирования (different viewpoint), некоторые которые используют графический редактор и иметь перекрестные ссылки между текстовой и графической моделью, редактировать одну и ту же модель в текстовом и графическом виде (текстовый формат используется графическим редактором как формат для сериализации, но это требует, чтобы текстовую модель можно было писать!). Одним из отслеживаемых мной проектов, которые занимаются облегчением программирования DSL является FONC (fundamentals of new computing, http://www.vpri.org/html/writings.php). В их списке рассылки договорились уже до того, что создать язык должно быть легко даже не "под задачу", а "под настроение". Не обсуждается, зачем это нужно и полезно ли. Обсуждается, как это можно сделать. Но это все глубоко исследовательские проекты. А вот вполне промышленный свободный проект для Eclipse: Xtext — это инструмент, который на входе берет EBNF для определенного вами DSL, а на выходе выдает для него удобный редактор, парсер и метамодель для Eclipse. После этого вы ныряете в Eclipse, где уже есть огромное количество инструментов для работы с (мета)моделями — их сравнение, валидация, преобразование, кодогенерация и т.д. ..." *** "... идите в конкретное, а не сводите к общему. ..." — см. репост. ___________ *) А. И. Левенчук, 2009-04-05 в 23:26:00 URL: https://ailev.livejournal.com/675572.html Дата / время обращения 17.09.2019 в 19:29 (Мск). Картинка: #ПословицыШСМ любезно предоставлена "Школа системного менеджмента" https://www.facebook.com/system.school.ru/ URL: https://www.facebook.com/system.school.ru/photos/a.429374823919757/1049997015190865/?type=3&theater #Методология@adwat_games / #СистемныйАнализ@adwat_games / #МетодологияСИ / #АИЛев Правила работы в ситуации, когда возник спор о терминах: не используйте определений, табуируйте термин, идите в конкретное, а не сводите к общему. Не ждите коротких понятийных расстояний. Тренируйте нейронную сетку, жизнь не математика. ГПЩ: "Определение — это гробик для уснувшей мысли". В учебнике системного мышления у меня определений нет, и глоссария нет. А поводом написать пост послужила вдруг ожившая дискуссия 2017 года про идеологов радикального либертарианства, в котором вдруг начали выяснять "что такое право".