Новый LabWindows/CVI

C/C++, JAVA, Agilent VEE, PHP, Basic, Pascal, Matlab etc.
Ответить
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Новый LabWindows/CVI

Сообщение Eugen Graf »

Я так понимаю по этому принципу устроен :labview: . Иначе нужно было бы компилировать весь проект при каждом новом изменении в каком либо приборе.

http://zone.ni.com/devzone/cda/tut/p/id/7960

Large projects often consist of multiple source files that include the same header files. The time the compiler takes to process header files over and over again can account for nearly all of the time required to build a project. To make builds faster, LabWindows/CVI 9.0 and later allows users to precompile header files, store the compiled state in a file, and during subsequent compilations, combine the precompiled code with code that is still under development. The first compilation — the one that creates the precompiled header file — takes a bit longer than subsequent compilations, but each subsequent compilation is faster because only modified header files need to be recompiled.

In other words, a pre-compiled header is a cache of header files. The compiler can analyze a set of headers once, compile them, and then have the results ready for any module that needs them.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Новый LabWindows/CVI

Сообщение mzu2006 »

eg писал(а):Я так понимаю по этому принципу устроен :labview:
По-моему, это вообще не про то. Precompilerd Header - это такой способ сокращения времени компиляции, известный со времён первых компиляторов MSVC (GCC from 3.4x), когда редко меняемые файлы заголовков в C/C++ программе подвергается предварительной обработке (синтаксическому разбору, анализу итд итп), чтобы директива #include быстрее работала. Как правило, многие библиотечные файлы заголовков предкомпилируются. http://en.wikipedia.org/wiki/Precompiled_header

То что, NI включили precompiled headers только начиная с версии 9 (т.е. только что) - IMHO позор для NI

В :labview: вообще нет файлов заголовков, так ведь. Код компилируется сразу по внесении изменений в БД или ЛП. То, что в C попадает в файлы заголовков, в LV - лежит отдельно в каждом инструменте. Собственно, по-моему, мгновенная компиляция просто снимает необходимость во всяких заголовочных файлах. Т.е. в широком смысле в :labview: прекомпилируется почти всё.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Новый LabWindows/CVI

Сообщение Eugen Graf »

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

Только вот вопросы:
Почему такое не делается в текстовых языках программирования? Или я не в курсе?
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Новый LabWindows/CVI

Сообщение mzu2006 »

eg писал(а):Почему такое не делается в текстовых языках программирования?
Думаю, что это долго. Набиваешь быстрее, чем компилируется.
В :labview: наоборот.

кроме того, в LV можно копилировать уже 1 иконку навход к которой все провода заведены, а в C,C++,C# минимальная единица компиляции будет функция

Ещё мысль: в LV сама блок-диаграмма выстраивает причинно-следственные связи. В С - для причинно следственных связей требутеся разбор больших кусков текста.

наверняка, правда, не знаю.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Новый LabWindows/CVI

Сообщение Eugen Graf »

Наверное минимальной единицей для (пре-) компиляции был бы символ, напечатаный программистом.

А вообще клёвая тема, которая меня очень интересует. Может кто то знает какие либо секреты наверняка? Какая есть инфа по этой теме? Насколько я знаю само ядро :labview: написано на С++ (видно по выскакивающим ошибкам во время программирования).
Ответить

Вернуться в «Языки программирования»