PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Создатель программ


Создатель программ

Сообщений 31 страница 60 из 103

31

Даже минимально упрощёный вариант будет создать не так просто.
На это уйдёт не мало времени и сил. А есть ли смысл?

0

32

интересовался  из чистого интереса. Просто работая с "мощным" конструктором Алгоритм, хотелось бы создать что то типа того, только начать с простого. Вот и спросил сложно или нет и как вообще делать. Но из твоего ответа понял что не так все просто.

0

33

Пётр написал(а):

Даже минимально упрощёный вариант будет создать не так просто.На это уйдёт не мало времени и сил. А есть ли смысл?

По сути смысла создавать хоть какой нибудь софт, вообще нет. Все что нужно пользователю, уже создано до нас. Но создавая мы учимся, ищем новое для себя и не даем киснуть своим мозгам.

0

34

Это я к тому, что для создания прог, такого класса, нужен опыт.

0

35

Пётр написал(а):

Это я к тому, что для создания прог, такого класса, нужен опыт.

Это точно.

0

36

а вообще сложно прикрутить к созданной программе компилятор Пурика? Например в EditorGadget стоит следующий текст:

Код:
MessageRequester("","")

Я нажимаю Файл_Создать программу и через пуриковский прикрепленный компилятор программа создает exe используя синтаксис и код, написанный в EditorGadget

0

37

Прикрутить можно (но компилятор весит примерно 10 МБ).
Главное, знать команды, которые нужно передать компилятору.

0

38

Пётр написал(а):

но компилятор весит примерно 10 МБ

Ого себе. Я думал можно обойтись одной dll

Пётр написал(а):

Главное, знать команды, которые нужно передать компилятору.

Я специально написал в этой теме, ибо мыли создать примитивный Алгоритм меня не покидают... Как я себе это все представляю:
Нужен шаблон, а именно:Например в созданной проге юзер создает кнопку и в фоновом режиме, в связанном списке(например) добавляется ButtonGadget(#Button_0, 70, 60, 45, 20, "пример"), при этом отображаются свойства созданной кнопки: текст, выравнивание и тп. Естественно изменение 'n[ свойств приводит к изменению в записи связанного списка. И так с другими же гаджетами. В итоге получаем готовый код программы, который мы и передаем компилятору, а он нам компилирует уже все...Блин, размеры поражают.Есть ли какие нибудь альтернативы? Как тебе данная задумка? Я конечно понимаю, что это неимоверный труд, но с чего то всегда начинают...

0

39

daiomik написал(а):

Ого себе. Я думал можно обойтись одной dll

Для нормальной работы компилятора, как минум нужны папки Compilers (собственно компилятор), PureLibraries (библиотеки с функциями) и Residents (зарание объявленые структуры, константы, интерфейсы и т. д.).
Общий размер - 18 МБ.

daiomik написал(а):

мысли создать примитивный Алгоритм меня не покидают

Мысли хорошие, но реализовать будет довольно сложно, точнее, нужны большие трудозатраты.

0

40

Пётр написал(а):

Мысли хорошие, но реализовать будет довольно сложно, точнее, нужны большие трудозатраты.

но что бы не останавливаться, скажи хотябы как передать имеющийся код в папку с компилятором пурика и создать exe.  Это вообще реально? Буду тренероваться пока на имеющимся компиляторе, если пример покажешь :)

0

41

Вот пример.
Не забудь указать правильные пути к компилятору и исходнику

Код:
PathCompiler.s="C:\Program Files\PureBasic 4.31\Compilers\pbcompiler.exe" ; Путь к компилятору
SourceFile.s="C:\Proga.pb" ; Исходник
OutEXE.s="C:\Proga.exe" ; Где создать исполняемый файл

If FileSize(GetPathPart(PathCompiler)+"PureBasic.exe")>0
 DeleteFile(GetPathPart(PathCompiler)+"PureBasic.exe")
EndIf

SourceFile=Chr(34) + SourceFile + Chr(34) + " /EXE"

RunProgram(PathCompiler, SourceFile, GetPathPart(PathCompiler), #PB_Program_Wait)
Delay(1000)

If FileSize(GetPathPart(PathCompiler)+"PureBasic.exe")>0
 If CopyFile(GetPathPart(PathCompiler)+"PureBasic.exe", OutEXE) 
   MessageRequester("", "Программа успешно скомпилирована", #MB_OK|#MB_ICONINFORMATION)
 EndIf
EndIf

0

42

Пётр написал(а):

Вот пример.

Очень хорошо...
Но вот предыдущий вопрос нужно решить..Значит со структурой примерно я разобрался и уже начал работать..но вот все равно в итоге нужен будет компилятор..Если не удастся взять пуриковский из-за громадного размера, значит либо нужно сделать свой, либо что то еще. Раз уж разговор зашел, то реально сделать свой компилятор допустим с синтаксисом пурика, ну или со своим собственным? Что же в такой ситуации предпринять? Опять же, если посмотреть в сторону Алгоритма, то там тоже есть папка компилятор и располагаются файлы от VB, но с размерам там все нормуль..Нужно что то думать

Отредактировано daiomik (29.06.2010 21:58:33)

0

43

daiomik написал(а):

то реально сделать свой компилятор

Можно, но задача очень сложная.

daiomik написал(а):

Опять же, если посмотреть в сторону Алгоритма

Алгоритм использует компилятор и библиотеки функций, входящие в .NET Framework. Прочитай первый пост этой темы.
Так что фактически они не разрабатывани ни компилятор, ни библиотеки функций для Алгоритма.

0

44

Мдя..то есть идея снова провальная..

0

45

Идея хорошая, просто её тяжело реализовать.
Нужно как минимуи год напряжённой работы, если собрался писать компилятор с нуля.

0

46

Идея интересная использовать - компилятор пурика, не смотря на вес 18 Мб, хотя в этом проблемы не вижу...
А как на это смотрят разработчики пурика, или с демо можно делать что угодно....
Нарушение лицензии - нас никогда не останавливало...
Мы в правильной стране живём...

0

47

mirashic написал(а):

А как на это смотрят разработчики пурика

Уж точно что не обрадуются!

0

48

Пётр написал(а):

Идея хорошая, просто её тяжело реализовать.

Вообще с чего можно примерно начать, что бы написать свой ОЧЕНЬ простой компилятор, который хотя бы пустую форму создает. Я этот процесс вообще не представляю, поэтому не пинайте ногами :) Так как пурик мне ближе всего, то может быть возможно использовать его Алгоритмы и синтаксис..

0

49

daiomik написал(а):

Вообще с чего можно примерно начать, что бы написать свой ОЧЕНЬ простой компилятор

С изучения ассемблера, машинного кода, PE формата исполняемых файлов.
Если с этим справишся, то дальше нужно прочитать теорию про создание компиляторов.
После этого, нужно изучить WinAPI.

PS.
Если использовать бесплатный компилятор ассемблера FASM (как сделано в PB), то можно не вникать в машинный код и PE формат исполняемых файлов.

0

50

Я так и думал, что в первых рядах стоит ассемблер..Хакерские форумы читал, там везде ассемблер упоминается. Наверно  тему загрязнять не буду. Ты или в новой теме или тут можешь ссылки кинуть на хорошие сайты, форумы, книги по этому делу.

0

51

Посмотри на http://wasm.ru/
Там много чего интересного есть.

Вот предлагали создать альтернативный компилятор для PureBasic http://purebasic.info/phpBB2/viewtopic.php?t=222
Тут есть кое-что про компиляторы/интерпретаторы http://purebasic.info/phpBB2/viewtopic.php?t=411

0

52

Спасибо!

0

53

На какой языке написан PB? Не на FASM же? :confused:

0

54

Компилятор на Сях, редакторы кода и форм на PB.
Впринципе, компилятор вполне возможно написать на PB, но разработчикам видно влом переписывать, а редактор они переписали при переходе с версии 3.96 на 4.00.

0

55

Пётр написал(а):

Впринципе, компилятор вполне возможно написать на PB

Получается это противоречит тому о чем мы говорили. Я начал копаться с FASM (сложно, но я не опускаю руки)...не напишешь же полностью компилятор прямо в PB??

0

56

daiomik написал(а):

Я начал копаться с FASM

Компилятор пурика (правильнее его называть транслятор), переводит код с PB в ASM и отдаёт его FASM'у, который создаёт из ассемблерного листинга, исполняемый файл.
Похоже что Фреду (главный разработчик пурика), не хотелось разбиратся со структурой исполняемых файлов, тем более что у платформ Windows, Linux, MacOS X и Amiga OS она разная и он схитрил, использовав FASM.
Но создать полноценный исполняемый файл, можно средствами пурика, но для этого нужно хорошо знать структуру исполняемого файла и машинный код процессора.

0

57

То есть получается зная FASM можно свой компилятор создать? (как в случае PB). Тогда не зря я его (FASM) учу..

0

58

daiomik написал(а):

То есть получается зная FASM можно свой компилятор создать? (как в случае PB). Тогда не зря я его (FASM) учу

Я бы сказал, не то чтобы можно, а проще будет сделать, т. к. не придётся разбиратся со структурой исполняемых файлов и машинным кодом.

0

59

По поводу создания компилятора, можно прочитать здесь http://purebasic.info/phpBB2/viewtopic.php?t=1256

0

60

Пётр написал(а):

По поводу создания компилятора, можно прочитать здесь http://purebasic.info/phpBB2/viewtopic.php?t=1256

Мдя, интересно, читал и книжку про компиляторы и Fasm смотрел..Но так и не понял/определился. Если я хочу сделать тупо компилятор который бы мне тупа создавал exe, даже пусть с синтаксисом PB и имел минимальный размер, то на чем его писать? На Fasm или PB?..Размер хотелось бы чтобы был очень маленький. Желательно не больше 500 кб (или метра)

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Создатель программ