Abrir menu principal
QB64
Última versão (08/04/2019)
Criado por Galleon, QB64 Team
Dialetos: BASIC
Influenciada por QuickBASIC, QBasic
Licença: Freeware
Página oficial https://www.qb64.org/

QB64 (originalmente QB32[1]) é um compilador BASIC auto-hospedado para Microsoft Windows, OS X e Linux, desenhado para ser compatível com o Microsoft QBasic e QuickBASIC. QB64 é um emissor C++, integrado com um compilador C++ que providencia a compilação do código C++ otimizado com GCC.[2]

A versão mais recente do QB64 é a 1.3. Essa versão implementa a maioria das expressões do QBasic, e permite executar muitos de seus programas, incluindo os clássicos jogos Gorillas e Nibbles. Além do mais, QB64 foi desenhado para ter um IDE semelhante ao do QBasic. O programa estende a linguagem de programação do QBasic para incluir tipos de dados de 64 bits, assim como melhor suporte a sons e gráficos.

Índice

HistóriaEditar

QB64 foi originalmente compilado com QuickBASIC 4.5. Após um desenvolvimento significativo, Galleon, o programador, teve alguma dificuldade devido aos limites de memória e mudou para o Microsoft BASIC PDS 7.1, que lhe resolveu essa dificuldade durante um curto espaço de tempo. Após a versão 0.63, QB64 adquiriu a capacidade de compilar a si próprio, pelo que o limite da memória convencional já não se aplicava.

SintaxeEditar

A sintaxe do QB64 é projetada para ser completamente retrocompatível com o QuickBASIC. Números de linha não são obrigatórios, e os comandos são terminados com uma nova linha ou com dois pontos :.

Um Programa Olá Mundo simples:

PRINT "Olá, mundo!"

Um exemplo da emulação de memória VGA implementada no QB64 para compatibilidade:

CLS
S$ = "Olá, mundo!"
DEF SEG = &HB800 'aponta para a memória de vídeo
FOR I = 1 TO LEN(S$)
    POKE 160 + (I - 1) * 2, ASC(MID$(S$, I, 1))'caractere
NEXT
DEF SEG 'redefine o segmento para o padrão

Um exemplo do uso de arquivos de áudio com o QB64:

som& = _SNDOPEN("som.wav") 'WAV, OGG ou MP3
_SNDPLAY som&

Um exemplo do uso de arquivos de imagem com o QB64:

SCREEN _NEWIMAGE(800, 600, 32) 'cria uma tela de 32bit
imagem& = _LOADIMAGE("arquivoDeImagem.png") 'BMP, JPG, PNG, etc.
_PUTIMAGE (0, 0), imagem&
_FREEIMAGE imagem& 'libera a memória utilizada pela imagem

Exemplo de como o QB64 utiliza múltiplos timers:

t1 = _FREETIMER
t2 = _FREETIMER
ON TIMER(t1, 1) GOSUB Timer.Trap 'o código que vem após o label Timer.Trap será executado a cada 1 segundo

ON TIMER(t2, .5) mySub 'QB64 também pode executar uma SUB com TIMER;
'                       neste caso, mySUB será executada a cada 500 milisegundos

'ativa os timers:
TIMER(t1) ON
TIMER(t2) ON

DO 'entra em loop até a janela ser fechada
    _LIMIT 1 'executa o loop em 1 ciclo por segundo, demonstrando que timers não são afetados
LOOP

Timer.Trap:
PRINT "1s; ";
RETURN

SUB mySub
    PRINT "500ms; ";
END SUB

Extensões ao QuickBASICEditar

Os comandos adicionais do QB64 começam por um underscore (traço inferior) de forma a evitar conflitos com nomes já existentes no QuickBASIC. Adicionalmente, novos tipos de dados existem no QB64, incluindo _BIT, _BYTE, e _INTEGER64 assim como tipos de dados sem sinal. Os novos tipos de dados têm um sufixo tal como nos tipos de dados tradicionais do BASIC. QB64 também inclui uma biblioteca de audio que permite tocar os formatos mais usuais, incluindo ficheiros MP3, Ogg Vorbis, e WAV, assim como bibliotecas que permitem ao utilizador utilizar resoluções gráficas superiores a 640*480 (máximo permitido pelo QuickBASIC[3]), utilização de variadas fontes de texto, e inserção de imagens em formato BMP, PNG e JPEG. Permite igualmente a utilização de cores a 32 bits. As bibliotecas são incluídas automaticamente pelo QB64, pelo que o programador não necessita de as especificar. E tal como no QuickBASIC, o programador pode incluir suas próprias bibliotecas através do comando $INCLUDE. Bibliotecas externas são suportadas por meio do comando DECLARE LIBRARY, podendo utilizar extensões escritas em C e DLLs diretamente.

BibliotecasEditar

Atualmente, QB64 utiliza a biblioteca OpenGL para os modos gráficos e modos de texto.

Referências

  1. Stephane Richard (16 de novembro de 2007). «In The News». PCOPY! Issue #50. Consultado em 17 de agosto de 2008. Arquivado do original em 21 de dezembro de 2009 
  2. E.K.Virtanen (26 de maio de 2008). «Interview With Galleon». PCOPY! Issue #70. Consultado em 14 de julho de 2008. Arquivado do original em 21 de agosto de 2008 
  3. «QB Advisor: Screen Modes 11, 12, and 13». Microsoft Corporation. 1988. Consultado em 25 de julho de 2008 

Ligações externasEditar


  Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.