Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Языки моделирования против языков программирования: десигнаторы против идентификаторов

Разработка SysMoLan ползёт потихоньку. Язык программирования от языка моделирования отличается тем, что в первом у нас идентификаторы сущностей программирования (переменных, функций и т.д.), а во втором десигнаторы сущностей реального мира (систем в их холархии) -- в случае SysMoLan это system designators из ISO 81346. Вот это различение языков моделирования от языков программирования мне сейчас крайне важно. Да, языки моделирования -- это тоже языки программирования, но не совсем. Они уже "взлетели" от языка computer science (integer, float, string, stack) к инженерному языку (system, component, module, pump). И инженерные данные (записи на языках моделирования) хороши как раз тем, что над ними можно запускать разные обработки -- а языки программирования так и просятся не к разным их "компилированиям" (обработке разными методами), а просто к запуску на исполнение. Тут мы немного расходимся в подходах с justy_tylor (см. комменты к http://ailev.livejournal.com/1128881.html).

К десигнаторам нужно добавить механизм местных справочных данных: "внутренний RDL" (по ходу дела придумываемый инженером, но чаще не столько придумываемый, а просто воспроизводимый из головы -- пишет обозначение насоса и приписывает, что это "насос") и мэппинг на внешний RDL (например, PCA RLD -- где определено, что такое "pump"). Основная фишка тут в том, что "внутренний RDL" делают инженеры, а на внешний RDL этот "внутренний RDL" затем может мэппить либо зело интеллектуальный софт автомэппера (сопоставляя "насос" из проекта с "pump" из PCA RDL и делая разные предупреждения и догадки в сложных случаях), либо модельер данных вручную, либо никто вообще не будет мэппить -- и если никто, то это ровно тот случай, который сейчас у инженеров в их совсем несемантических в смысле организации данных проектах.

После разборки с десигнаторами самой системы нужно поработать над десигнаторами самих описаний -- там же прямые указания на виды обработки (view -- модель с десигнатором, а классифицируется эта модель через отсылку на viewpoint, метод описания). ISO 81346 в этом плане требует доработки: он всё рассказывает про десигнаторы, а вот с понятными для человека описаниями типов там нахомутано: они сведены до уровня комментариев-меток (labels, то есть в каком-то смысле синониму десигнатора, как в ISO 15926 label в каком-то смысле синоним UR).

Вполне обозримо сейчас прорваться через обозначения системы и её описаний с учётом их многоаспектности и разбиений прорваться (заодно решив мелкие вопросы типа "дизайн в классах" и "обозначения для индивидов"), а также договориться о прикручивании внешних и внутренних классификаторов (там ведь тоже где-то специализация класса из RDL, а где-то работа с классами классов -- и тут нужна аккуратность).
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 13 comments