Движок сайта на LabVIEW для apache 2.2 linux

Делись идеей, получай поддержку и критику!
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1326
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 36 раз
Контактная информация:

Re: Движок сайта на LabVIEW для apache 2.2 linux

Сообщение AndreyDmitriev »

Vitekkz88 писал(а):
Ещё раз - автор хочет сделать движок сайта на графическом языке, это будет крутиться на апаче, и под линукс.
Вы же предлагаете зачем-то CVI
Мы не поняли друг друга.
Автор создал 2 темы: про транслятор и про движок с разницей в день примерно. Моё сообщение к транслятору относилось
А, теперь понятно. Да, упоминание CVI в теме про компилятор более уместно, конечно. Впрочем CVI тоже штука довольно специфическая (хотя это отдельная тема). Сама компания NI свой компилятор LabVIEW ваяет на Visual Studio, а не на собственном CVI.
Данил
beginner
beginner
Сообщения: 27
Зарегистрирован: 20 окт 2014, 10:35
Версия LabVIEW: 2010 linux
Контактная информация:

Re: Движок сайта на LabVIEW для apache 2.2 linux

Сообщение Данил »

AndreyDmitriev писал(а):
Vitekkz88 писал(а):
Ещё раз - автор хочет сделать движок сайта на графическом языке, это будет крутиться на апаче, и под линукс.
Вы же предлагаете зачем-то CVI
Мы не поняли друг друга.
Автор создал 2 темы: про транслятор и про движок с разницей в день примерно. Моё сообщение к транслятору относилось
А, теперь понятно. Да, упоминание CVI в теме про компилятор более уместно, конечно. Впрочем CVI тоже штука довольно специфическая (хотя это отдельная тема). Сама компания NI свой компилятор LabVIEW ваяет на Visual Studio, а не на собственном CVI.
Прошу прощения, может имеют место какие-то недопонимания, но при чём тут язык на котором реализован компилятор? Очень уж сомневаюсь, что компиляция там происходит непосредственно из LV кода в Windows PE. У меня такое мнение сложилось, что компиляция там происходит в промежуточный код, который "заключают в ресурс" транслятору и гордо называют это программой. Думаю, такую задачу (сборку кода в exe) можно реализовать хоть на WSH+JavaScript если нужно будет. Я сомневаюсь даже в том, что этот "промежуточный язык" полностью уникальное решение, скорее всего это что-то готовое слегка модифицированное, иначе зачем это всё нужно, создавать ещё один язык программирования? И так же я очень сомневаюсь, что транслятор "промежуточного языка" написан на высокоуровневом языке программирования... (считаю тут классический СИ/СИ++ - низкоуровневым языком)
Интересно кстати, если я возьму готовое приложение, выкушу из него промежуточный код, напишу софтину, которая будет толкать в эту exe любой другой "промежуточный код". Открою LabVIEW через отладчик опознаю и обозначу область памяти, где генерится этот "промежуточный код" в момент запуска моего VI, я смогу компилировать программы без компилятора. Просто выдирать их из памяти программы в момент запуска, а потом втыкать в свою exe. Таким образом можно родить бесплатный компилятор для бесплатного labVIEW 6, но это идея в подарок кому нечего делать.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1326
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 36 раз
Контактная информация:

Re: Движок сайта на LabVIEW для apache 2.2 linux

Сообщение AndreyDmitriev »

Данил писал(а): Прошу прощения, может имеют место какие-то недопонимания, но при чём тут язык на котором реализован компилятор? Очень уж сомневаюсь, что компиляция там происходит непосредственно из LV кода в Windows PE. У меня такое мнение сложилось, что компиляция там происходит в промежуточный код, который "заключают в ресурс" транслятору и гордо называют это программой. Думаю, такую задачу (сборку кода в exe) можно реализовать хоть на WSH+JavaScript если нужно будет.
Как бы так объяснить... Ну вот представьте себе - вам надо закрутить кучу шурупов, отвёртки под крест нет - только прямой шлиц. Вы, конечно, можете крутить их и так, но будет сильно неудобно. В конце концов вы просто начнёте забивать их молотком. Язык сам по себе, конечно, неважен - это всего лишь инструмент. Можно реализовать вашу задумку на ассемблере? Да не вопрос. Но времени на это уйдёт очень много (хотя работать будет быстро). Можете написать всё на уже упомянутом CVI, но там чистый Си - лишившись объектной ориентированности вам придётся наворачивать конструкции, которые на C++ реализовывались бы на порядок проще. И так далее. Для каждой задачи один инструмент подходит лучше, другой хуже, только и всего. Дело не только в используемом компиляторе, но и в существующих библиотеках, инфраструктуре, удобстве отладки, скорости кодогенерации и качества генерируемого кода, и т.д. и т.п.

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

Ещё раз:

Внутри LabVIEW - как работает компилятор
http://www.ni.com/white-paper/5314/en/

Под капотом компилятора LabVIEW:
http://www.ni.com/white-paper/11472/en/

Была ещё третья ссылка, но NI её убрал, так что прилагаю pdf из архива - там показано, во что компилируется код LV.
LabVIEW Generated Code.pdf
(1.14 МБ) 358 скачиваний
При компиляции "промежуточный код", как вы его называете, используется (читайте внимательно по ссылке выше). Однако в скомпилированном приложении и сохранённых VI промежуточного кода нет. Бояться промежуточного представления не нужно - это может сильно облегчить жизнь с точки зрения архитектуры. Посмотрите - его используют куча компаний http://llvm.org/Users.html. Технически компиляция производится "на лету", при редактировании, ну или когда вы щёлкаете по Run с зажатым контролом. В памяти на этапе разработки всегда присутствует полностью скомпилированная программа (не в промежуточном представлении, а именно скомпилированная). При сохранении VI скомпилированный код сохраняется в VI вместе с блок-диаграммой (в последних версиях LabVIEW его можно хранить отдельно - в основном это сделано из-за того, что системы контроля версий с ума сходят от таких исходников). При загрузке VI в память сразу грузится скомпилированный код, если это возможно (не всегда по некоторым причинам - в этом случае при открытии вы видите окно Compiling Vi...). При генерации приложения в исполняемый файл в начало пишется небольшой загрузчик и следом за ним llb, содержащая все SubVI без блок-диаграм, но со скомпилированным кодом. В последних версиях - используется упаковка SubVI в zip - это сделано, чтобы не было конфликта имён (если в двух классах или библиотеках присутствуют инструменты с одинаковыми именами). При старте приложения загрузчик всё это грузит в память, затем ищет, начиная со своей папки lvrt.dll, передаёт ей управление (в ней WinMain грубо говоря сидит), оттуда запускаются потоки, которые начинают выполнять загруженный код. Чтобы "генерить программы без компилятора" достаточно отрезать от одного из сгенерённых приложений загрузчик - это примерно килобайт пятьдесят и, грубо говоря, "приклеить" к нему другие VI - только и всего (там не так всё тривиально, но принцип такой).
Данил
beginner
beginner
Сообщения: 27
Зарегистрирован: 20 окт 2014, 10:35
Версия LabVIEW: 2010 linux
Контактная информация:

Re: Движок сайта на LabVIEW для apache 2.2 linux

Сообщение Данил »

Разобрался наконец с mod_rewrite, теперь любые существующие htm в корне заменяются скриптом. А скрипт уже знает, от имени какой htm его запустили. Сейчас думаю над безопасностью и над тем, как могут обмануть данную систему, что бы заранее предусмотреть. http://lvcgibridge.tk/Test.htm - как пример.
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: Движок сайта на LabVIEW для apache 2.2 linux

Сообщение Super Star »

Данил писал(а):Разобрался наконец с mod_rewrite, теперь любые существующие htm в корне заменяются скриптом. А скрипт уже знает, от имени какой htm его запустили. Сейчас думаю над безопасностью и над тем, как могут обмануть данную систему, что бы заранее предусмотреть. http://lvcgibridge.tk/Test.htm - как пример.

мне нравится
я люблю свою работу.... Я приду сюда в субботу ...
Данил
beginner
beginner
Сообщения: 27
Зарегистрирован: 20 окт 2014, 10:35
Версия LabVIEW: 2010 linux
Контактная информация:

Re: Движок сайта на LabVIEW для apache 2.2 linux

Сообщение Данил »

Super Star писал(а):
Данил писал(а):Разобрался наконец с mod_rewrite, теперь любые существующие htm в корне заменяются скриптом. А скрипт уже знает, от имени какой htm его запустили. Сейчас думаю над безопасностью и над тем, как могут обмануть данную систему, что бы заранее предусмотреть. http://lvcgibridge.tk/Test.htm - как пример.

мне нравится
Это указывает на какую-то уязвимость? Вы прочитали какой-либо файл с сервера?
http://lvcgibridge.tk/TestCGI.cgi/asd/p ... %3C/div%3E, а фон выбрали чёрным, что бы по страшнее выглядело? То что сейчас переменные постятся напрямую, это ничего не означает. А путь то какой страшный выбрали, что то там с passwd :suicide: Детский сад какой-то.
Можно же и без моего сервера вообще если вот так javascript:document.write("<html>123")
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Проекты»