Программы для создания программ
|
|
Нохчи | Дата: Пятница, 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ем зла.
|
|
| |