LabVIEW портал

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта
Введение


Интерпретатор или компилятор?

Здравствуйте, коллеги!
Сегодня — несколько слов о внутреннем устройстве файлов LabVIEW, плюс парочка "хакерских" упражнений.
Много лет назад, только начиная работать с LabVIEW, я был абсолютно уверен в том, что LabVIEW — интерпретатор, в чём-то отчасти похожий на Basic. Блок-диаграмма наверняка представлена в виде некоего дерева, которое интерпретируется средой выполнения. В пользу этого также говорило наличие увесистой Run-Time Engine, необходимой для запуска "скомпилированного" приложения, возможность "подсветки" кода при выполнении, наличие файлов VI "как есть" внутри скомпилированного приложения, ну и малая скорость выполнения по сравнению с компиляторами типа С или Delphi (впрочем и сегодня оставляющая желать много лучшего). Однако моя уверенность значительно пошатнулась после прочтения любопытной статьи, в которой был продемонстрирован ассемблерный листинг простенького цикла:
Но даже увидев реальный код, я был уверен, что код этот — результат работы классного интерпретатора, выдернутый из памяти приложения. Я даже попытался сбросить память LabVIEW-программы в дамп и деассемблировать его, да ничего хорошего из этого не вышло.
Желающим повозиться самостоятельно скажу сразу, что пытаться деассемблировать скомпилированную LabVIEW программу "в лоб", равно как и отдельные SubVI смысла не имеет.
Однако как любому ребёнку хочется заглянуть внутрь любимой игрушки, так и мне никак не давал покоя вопрос — как же всё-таки устроен VI и где же код?
Что ж, давайте набросаем простенький код, например тот, который был приведён в статье выше:

и заглянем внутрь обычным hex-просмотрщиком (я использую обыкновенный Far):
 

Видеоурок: Здравствуй мир !

В этом видеоуроке показывается как создать простейший прибор в LabVIEW. Этот прибор будет выдавать строку в индикатор на лицевой панели.

 

Что такое LabVIEW

При создании программного обеспечения важно сократить временные и прямые финансовые затраты на разработку ПО, минимизировать сложности, связанные с отладкой и моделированием сложных математических алгоритмов, которые нужны для промежуточных и итоговых результатов и измерений. При этом среда разработки ПО должна отвечать всем требованиям, предъявляемым к языкам программирования, поддерживать все современные протоколы обмена данными, обладать высокой совместимостью с другими языками.