PureBasic

Тема в разделе "WASM.LANGS", создана пользователем GRAFik, 19 дек 2022.

  1. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    Когда-то давно на каком-то западном форуме прочитал положительный отзыв о PureBasic. У него вроде-как, хороший компиллятор, который позволяет генерировать код на FASM'е, а так же делать FASM-вставки в коде программы. Примерно как это делает VS c MASM-ом. Кто-нибудь работал с ним? Поделитесь информацией\впечатлениями.
     
  2. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Кроссплатформа и много функций из коробки, но синтаксис там довольно своеобразный, нет ООП за исключением COM интерфейсов.
     
    GRAFik нравится это.
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Последний раз, когда смотрел его, там были некоторые странности в генераторе кода, типа пяти нопов посреди сабрутины вставлено. Вероятно, это компилятор выделил себе какое-то место для патча таким образом, но зачем это нужно мне с ходу было не понятно, а разбираться с этим я конечно же не стал.

    По сабжу: Если любишь Басики, то почему бы и нет? Проект непопулярен чуть более, чем полностью, но внешне со стороны выглядит хорошо для Басика. Еще можно FreeBasic посмотреть, но он использует Cи или LLVM для генерации кода, и там большая стандартная библиотека на Си написана, если она может помешать.
     
    GRAFik нравится это.
  4. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    Thetrik, Rel, помогите, если не трудно, немного "развеять туман". Я в примерах с кодом - нашел как делать вставки FASM, а вот как сгенерировать FASM-листинг - не соображу. Толи в коде что-то нужно прописать или в настройках что включить? Сам по-себе PureBasic маленький, настроек немного. Вроде все просмотрел. Т.е. exe-файл он мне выдает, вот с FASM-листингом - проблема.
    Код (Text):
    1. CompilerIf #PB_Compiler_Processor <> #PB_Processor_x86 And #PB_Compiler_Processor <> #PB_Processor_x64
    2.   CompilerError "This example only works on x86 or x64 processors"
    3. CompilerEndIf
    4.  
    5. Value.l = 3258  ; Declare our own variable
    6.  
    7. EnableASM
    8.   MOV rbx, 43707 ; Directly use the ASM keywords with PureBasic variable !
    9.   MOV Value, 6699
    10.   INC Value
    11. DisableASM
    12.  
    13. MessageRequester("ASM Example", "Should be 21: " + Value)
    14.  
    15. ; IDE Options = PureBasic 6.00 LTS (Windows - x64)
    P.S. Кстати 64b установщик весит всего 50 Mb.