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

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

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

Postby AndreyDmitriev on 29 Oct 2014, 11:07

Vitekkz88 wrote:
Ещё раз - автор хочет сделать движок сайта на графическом языке, это будет крутиться на апаче, и под линукс.
Вы же предлагаете зачем-то CVI

Мы не поняли друг друга.
Автор создал 2 темы: про транслятор и про движок с разницей в день примерно. Моё сообщение к транслятору относилось

А, теперь понятно. Да, упоминание CVI в теме про компилятор более уместно, конечно. Впрочем CVI тоже штука довольно специфическая (хотя это отдельная тема). Сама компания NI свой компилятор LabVIEW ваяет на Visual Studio, а не на собственном CVI.
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

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

Postby Данил on 29 Oct 2014, 11:32

AndreyDmitriev wrote:
Vitekkz88 wrote:
Ещё раз - автор хочет сделать движок сайта на графическом языке, это будет крутиться на апаче, и под линукс.
Вы же предлагаете зачем-то CVI

Мы не поняли друг друга.
Автор создал 2 темы: про транслятор и про движок с разницей в день примерно. Моё сообщение к транслятору относилось

А, теперь понятно. Да, упоминание CVI в теме про компилятор более уместно, конечно. Впрочем CVI тоже штука довольно специфическая (хотя это отдельная тема). Сама компания NI свой компилятор LabVIEW ваяет на Visual Studio, а не на собственном CVI.

Прошу прощения, может имеют место какие-то недопонимания, но при чём тут язык на котором реализован компилятор? Очень уж сомневаюсь, что компиляция там происходит непосредственно из LV кода в Windows PE. У меня такое мнение сложилось, что компиляция там происходит в промежуточный код, который "заключают в ресурс" транслятору и гордо называют это программой. Думаю, такую задачу (сборку кода в exe) можно реализовать хоть на WSH+JavaScript если нужно будет. Я сомневаюсь даже в том, что этот "промежуточный язык" полностью уникальное решение, скорее всего это что-то готовое слегка модифицированное, иначе зачем это всё нужно, создавать ещё один язык программирования? И так же я очень сомневаюсь, что транслятор "промежуточного языка" написан на высокоуровневом языке программирования... (считаю тут классический СИ/СИ++ - низкоуровневым языком)
Интересно кстати, если я возьму готовое приложение, выкушу из него промежуточный код, напишу софтину, которая будет толкать в эту exe любой другой "промежуточный код". Открою LabVIEW через отладчик опознаю и обозначу область памяти, где генерится этот "промежуточный код" в момент запуска моего VI, я смогу компилировать программы без компилятора. Просто выдирать их из памяти программы в момент запуска, а потом втыкать в свою exe. Таким образом можно родить бесплатный компилятор для бесплатного labVIEW 6, но это идея в подарок кому нечего делать.
Данил
beginner
beginner
 
Posts: 27
Joined: 20 Oct 2014, 10:35
LabVIEW Version: 2010 linux
Karma: 10

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

Postby AndreyDmitriev on 30 Oct 2014, 00:14

Данил wrote:Прошу прощения, может имеют место какие-то недопонимания, но при чём тут язык на котором реализован компилятор? Очень уж сомневаюсь, что компиляция там происходит непосредственно из 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 MiB) Downloaded 195 times


При компиляции "промежуточный код", как вы его называете, используется (читайте внимательно по ссылке выше). Однако в скомпилированном приложении и сохранённых VI промежуточного кода нет. Бояться промежуточного представления не нужно - это может сильно облегчить жизнь с точки зрения архитектуры. Посмотрите - его используют куча компаний http://llvm.org/Users.html. Технически компиляция производится "на лету", при редактировании, ну или когда вы щёлкаете по Run с зажатым контролом. В памяти на этапе разработки всегда присутствует полностью скомпилированная программа (не в промежуточном представлении, а именно скомпилированная). При сохранении VI скомпилированный код сохраняется в VI вместе с блок-диаграммой (в последних версиях LabVIEW его можно хранить отдельно - в основном это сделано из-за того, что системы контроля версий с ума сходят от таких исходников). При загрузке VI в память сразу грузится скомпилированный код, если это возможно (не всегда по некоторым причинам - в этом случае при открытии вы видите окно Compiling Vi...). При генерации приложения в исполняемый файл в начало пишется небольшой загрузчик и следом за ним llb, содержащая все SubVI без блок-диаграм, но со скомпилированным кодом. В последних версиях - используется упаковка SubVI в zip - это сделано, чтобы не было конфликта имён (если в двух классах или библиотеках присутствуют инструменты с одинаковыми именами). При старте приложения загрузчик всё это грузит в память, затем ищет, начиная со своей папки lvrt.dll, передаёт ей управление (в ней WinMain грубо говоря сидит), оттуда запускаются потоки, которые начинают выполнять загруженный код. Чтобы "генерить программы без компилятора" достаточно отрезать от одного из сгенерённых приложений загрузчик - это примерно килобайт пятьдесят и, грубо говоря, "приклеить" к нему другие VI - только и всего (там не так всё тривиально, но принцип такой).
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

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

Postby Данил on 11 Nov 2014, 09:42

Разобрался наконец с mod_rewrite, теперь любые существующие htm в корне заменяются скриптом. А скрипт уже знает, от имени какой htm его запустили. Сейчас думаю над безопасностью и над тем, как могут обмануть данную систему, что бы заранее предусмотреть. http://lvcgibridge.tk/Test.htm - как пример.
Данил
beginner
beginner
 
Posts: 27
Joined: 20 Oct 2014, 10:35
LabVIEW Version: 2010 linux
Karma: 10

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

Postby Super Star on 11 Nov 2014, 10:23

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



мне нравится
я люблю свою работу.... Я приду сюда в субботу ...
User avatar
Super Star
adviser
adviser
 
Posts: 228
Joined: 07 Feb 2013, 08:37
LabVIEW Version: 2011
Karma: 35

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

Postby Данил on 17 Nov 2014, 07:35

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



мне нравится

Это указывает на какую-то уязвимость? Вы прочитали какой-либо файл с сервера?
http://lvcgibridge.tk/TestCGI.cgi/asd/passwd:D%3Cbody%20bgcolor=white%3E%3Cdiv%20style='font-size:40;color:red;position:absolute;top:100;left:500'%3ESuper%20Star%3C/div%3E, а фон выбрали чёрным, что бы по страшнее выглядело? То что сейчас переменные постятся напрямую, это ничего не означает. А путь то какой страшный выбрали, что то там с passwd :suicide: Детский сад какой-то.
Можно же и без моего сервера вообще если вот так javascript:document.write("<html>123")
Данил
beginner
beginner
 
Posts: 27
Joined: 20 Oct 2014, 10:35
LabVIEW Version: 2010 linux
Karma: 10

Previous

Return to Проекты

Who is online

Users browsing this forum: No registered users and 1 guest

cron