| Программы для создания программ | 
|  | 
| 
| Нохчи | Дата: Пятница, 03 Мая 2013, 12:28 | Сообщение # 1 |  | заслуженный участник Сейчас нет на сайте | Всем доброго времени суток. Интересует принцип работы различных конструкторов, в которых методом drag&drop собирается программа, а затем выплевается исполняемый файл, зачастую под разные платформы. Как вообще такое реализуется? Программа описывается на каком-либо языке, а затем компилируется компилятором, который тащит с собой конструктор?
 Спасибо
   
 Многие вопросы по Windows отпадут, если посмотреть тут
 |  |  |  |  | 
| 
| allxumuk | Дата: Пятница, 03 Мая 2013, 12:36 | Сообщение # 2 |  |   старожил Сейчас нет на сайте | Цитата (Нохчи) Программа описывается на каком-либо языке, а затем компилируется компиляторомКак вариант, программа описывается скриптами, а затем эти скрипты "приклеиваются" к интерпритатору, как в Love2d, например (только в нём нет конструктора да и вообще родного ide).
 
 Любой дурак может написать программу, которую поймёт компилятор.
 Хорошие программисты пишут программы, которые смогут понять другие программисты.
 |  |  |  |  | 
| 
| daun | Дата: Пятница, 03 Мая 2013, 13:13 | Сообщение # 3 |  | постоянный участник Сейчас нет на сайте | Почему то многим кажется, что конструктор сделать очень просто, увы и ах. 
 1. Компоновка, линковка (идеальный вариант).
 Обычный компель, визуальная сборка кода с последующей компиляцией. На выходе большая скорость, на входе много мороки (системным программированием попахивает).
 
 2. Компиляция сразу объектов на своем компеле, бр, вариант для мазохистов.
 
 3. Интерпретатор - плеер.
 Тут как mp3 - плеер, есть на всех платформах. Напоминает редактор уровней, но разнесенный, чем больше вариантность, тем лучше (в идеале содержит скриптовый (или визуальный) движок). На выходе тормоза, болезнь всех плееров. На входе файлы с данными (и логикой).
 |  |  |  |  | 
| 
| Archido | Дата: Пятница, 03 Мая 2013, 14:00 | Сообщение # 4 |  |   Сэнсэй Сейчас нет на сайте | Да, интерпретатор - наиболее вероятный вариант как мне кажется, но скорее только частично. Скажем, ноды в визуальном редакторе кода на самом деле используют нативный код, который написан и определен заранее. Скрипты используются чтобы связать эти ноды воедино (передавать входные\выходные параметры между ними и вызывать сам код), а все вычисления которые они выполняют - делает натив. Если есть внутренний скрипт язык (а он наверняка есть), то опять таки - все готовые ф-ции которые там есть - это натив, а вот уже лично написанный код исполняется чисто интерпретатором. При этом таки, никто не мешает повесить все эти скрипты на виртуальную машину вроде LLVM и получить в добавок JIT компиляцию, что прилично покроет расходы на обычную интерпретацию.
 
 Преимущества очевидны - есть некая "платформа", которая портирована много куда и которая умеет исполнять внешние сценарии (скрипты), не привязанные к конкректной аппаратной или программной части. К платформе заранее прилинкован специфичный "гейм" код, API которого выведено наружу и которое используется скриптами, а остальное интерпретируется (или JIT компилируется). В итоге имеем относительно несложную реализацию и неплохую скорость исполнения всего этого дела.
 
 C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
 
 
 Сообщение отредактировал Archido - Пятница, 03 Мая 2013, 14:02 |  |  |  |  | 
| 
| allxumuk | Дата: Пятница, 03 Мая 2013, 16:03 | Сообщение # 5 |  |   старожил Сейчас нет на сайте | Нохчи, можешь побаловаться с Констракт 2, он же на HTML5, так, что можно посмотреть "исходные материалы" и "конечный результат". 
 Любой дурак может написать программу, которую поймёт компилятор.
 Хорошие программисты пишут программы, которые смогут понять другие программисты.
 |  |  |  |  | 
| 
| Undead | Дата: Пятница, 03 Мая 2013, 16:19 | Сообщение # 6 |  |   NeoAxis User Сейчас нет на сайте | Ну на .net такое сделать просто. Можно генерить код и компилировать, обычные .Net программы.
 Дизайнер форм и систему с созданием логики drag&drop написать тоже не сложно.
 Ну в принципе такой вариант для люього языка/платформы сойдёт.
 
 Вcем зла.
 
 
 Сообщение отредактировал Undead - Пятница, 03 Мая 2013, 17:15 |  |  |  |  | 
| 
| Нохчи | Дата: Пятница, 03 Мая 2013, 17:41 | Сообщение # 7 |  | заслуженный участник Сейчас нет на сайте | Undead, ты имеешь ввиду первый вариант daun`a, тоскать с собой компилятор и линкер? daun, Archido, allxumuk, спасибо. Над этой инфой надо как следует подумать.
 
 Многие вопросы по Windows отпадут, если посмотреть тут
 |  |  |  |  | 
| 
| Undead | Дата: Пятница, 03 Мая 2013, 17:57 | Сообщение # 8 |  |   NeoAxis User Сейчас нет на сайте | Нохчи, Ну в .Net ничего с собой таскать не нужно. 
 Вcем зла.
 |  |  |  |  | 
| 
| Vinchensoo | Дата: Пятница, 03 Мая 2013, 18:47 | Сообщение # 9 |  |   Злобный социопат с комплексом Бога Сейчас нет на сайте | Цитата (Нохчи) зачастую под разные платформы.NET и это не совместимы.
 
 
   |  |  |  |  | 
| 
| Undead | Дата: Пятница, 03 Мая 2013, 19:34 | Сообщение # 10 |  |   NeoAxis User Сейчас нет на сайте | Vinchensoo, Mono? 
 Вcем зла.
 |  |  |  |  | 
| 
| Vinchensoo | Дата: Пятница, 03 Мая 2013, 19:40 | Сообщение # 11 |  |   Злобный социопат с комплексом Бога Сейчас нет на сайте | Цитата (Undead) Vinchensoo, Mono? 
Моно- не дотнет, а сторонняя реализация. Многие считают ее еще тем костылем, между прочим. И это нужно понимать.
 
 
   |  |  |  |  | 
| 
| Alisher987 | Дата: Пятница, 03 Мая 2013, 19:41 | Сообщение # 12 |  |   участник Сейчас нет на сайте | так я прочел но ничего не понял   
 
   |  |  |  |  | 
| 
| Undead | Дата: Пятница, 03 Мая 2013, 21:32 | Сообщение # 13 |  |   NeoAxis User Сейчас нет на сайте | Цитата (Vinchensoo) Моно- не дотнет, а сторонняя реализация.Ну да. но официально признана реализацией .net,а на всяких там никсах.
 По сути ничем не уступает оригиналу, только скорость немного ниже.
 
 Вcем зла.
 |  |  |  |  |