PowerBASIC - PowerBASIC

PowerBASIC
PowerBasic-screen-shot.png
Skærmbillede af PowerBasic til Windows 9.0 IDE og et eksempel kompileret Windows GUI.
Udvikler Robert "Bob" Zale (f. 1945, d. 2012)
Først dukkede op 1989 ; 32 år siden  ( 1989 )
Stabil frigivelse
10.0 (4. maj 2011 ; 9 år siden )  ( 04-05-2011 )
Internet side www. powerbasic .com
Påvirket af
Turbo Basic

PowerBASIC , tidligere Turbo Basic , er mærket af flere kommercielle kompilatorer fra PowerBASIC Inc., der kompilerer en dialekt af BASIC- programmeringssprog . Der er både MS-DOS- og Windows-versioner og to slags sidstnævnte: Console og Windows. MS-DOS-versionen har en syntaks svarende til QBasic og QuickBASIC . Windows-versionerne bruger en BASIC-syntaks udvidet til at omfatte mange Windows-funktioner, og udsagnene kan kombineres med opkald til Windows API .

Historie

Den første version af DOS-compileren blev udgivet som BASIC / Z, den allerførste interaktive compiler til CP / M og MDOS. Senere blev det udvidet til MS-DOS / PC DOS, og i 1987 distribuerede Borland det som Turbo Basic .

Turbo Basic blev oprindeligt oprettet af Robert "Bob" Zale (1945-2012) og købt af ham af Borland . Da Borland besluttede at stoppe med at udgive det (1989), købte Zale det tilbage fra dem, omdøbte det til PowerBASIC og oprettede PowerBASIC Inc. for at fortsætte support og udvikling af det; det blev senere kaldet PBDOS.

PowerBASIC udviklede videre BASIC-kompilatorer til Windows, først PBWIN - deres flagskibsprodukt - og derefter PBCC, beskrevet nedenfor.

Den 6. november 2012 døde Robert Zale, skaberen af ​​PowerBASIC. I en periode blev det antaget, at virksomheden muligvis ville ophøre med driften. Hans kone, fru Vivian Zale, sendte den 8. marts 2014 til PowerBASIC-foraerne en erklæring om, at virksomheden ville fortsætte i drift. Den 10. maj 2015 meddelte fru Zale, at arbejdet fortsatte med nye versioner af PowerBASIC-kompilatorer.

Den 2. november 2016 meddelte Vivian Zale, at hun havde til hensigt at begynde at søge en køber til virksomheden.

Aktiv udvikling af PowerBASIC-produkter er stoppet. De forventer ikke længere at frigive PBWin11 og PBCC7, som var i beta-test, da Bob Zale døde, heller ikke 64-bit compilerne eller PB / Pro (PBWin og CC i en compiler), som stadig var i alfa-stadierne.

Den 31. januar 2017 meddelte Adam Drake, at Drake Software havde erhvervet PowerBASIC-kildekoden fra PowerBasic, Inc. med det formål at opdatere og forbedre produktets funktionalitet. Dette blev senere bekræftet af Vivian Zale med et forumindlæg, der takkede medlemmerne for deres støtte. Desværre blev der aldrig frigivet nogen ny version (den sidste udgivelse v10.03 var for 8 år siden i december 2020), ikke engang små tweaks som tilføjelse af de korrekte DPI-indstillinger til IDE blev frigivet, og som sådan gør det helt klart, hvad fremtiden for PowerBASIC er. Der er heller ikke vist nogen udviklingsaktivitet i form af statusrapporter eller betaudgivelser. Tilsyneladende arbejder en person på noget i de 8 år, der, selvom det er sandt, genindfører det eneste fejlpunkt. Man kan dog stadig købe nye licenser.

Kompilatorer

PowerBASIC-programmer er selvstændige og bruger ingen runtime-filer til at udføre. I alle versioner af compileren kompileres applikationerne uden eksterne biblioteker, selvom du kan bruge sådanne biblioteker, hvis det ønskes. PBDOS opretter 16-bit DOS MZ eksekverbare filer, mens PBWIN og PBCC opretter 32-bit Portable Executable (PE) filer.

Turbo Basic

Borlands Turbo Basic indeholder udvidelser til klassisk BASIC (uden at bryde kompatibilitet). En af dem var et API til tegning og adgang til mus.

I modsætning til de fleste BASIC-implementeringer af sin tid var Turbo Basic en fuld compiler, der genererede native kode til MS-DOS. Andre implementeringer var enten tolke eller stod stærkt på et runtime-bibliotek. Det integrerede udviklingsmiljø kunne køre et BASIC-program internt til traditionel BASIC-fejlfinding (se eksemplet nedenfor) eller generere en MS-DOS stand-alone eksekverbar fil, der kunne køres på andre systemer uden Turbo Basic-produktet eller runtime-biblioteker.

Kodeeksempel

Det følgende program er et eksempel på den ALGOL- lignende BASIC-dialekt, som Turbo Basic understøttede. I modsætning til traditionelle BASIC, som brugte linjenumre og havde begrænsede kontrolstrukturer og ingen understøttelse af ALGOL-lignende subrutiner, blev moderne BASIC-dialekter, der startede i denne periode, udvidet til at gøre sproget kompatibelt med moderne struktureret programmeringsteori ved at kassere linjenumrene og tilføje kontrollen strukturer og subrutinedefinitioner, der kræves af struktureret programmering.

INPUT "What is your name?: ", n$
PRINT "Hello "; n$
DO
  s$ = ""
  INPUT "How many stars do you want to print"; s
  FOR i = 1 TO s
    s$ = s$ + "*"
  NEXT i
  PRINT s$
  DO
    INPUT "Do you want to print more stars"; q$
  LOOP WHILE LEN(q$) = 0
  q$ = LCASE$(LEFT$(q$, 1))
LOOP WHILE q$ = "y"
PRINT "Goodbye "; n$

( s$ er en streng og s er et flydende punkt med et enkelt præcision (nummer). De er separate variabler.)

Ligesom de andre Borland-produkter i denne æra udføres koden inden for det integrerede udviklingsmiljø.

PowerBASIC til DOS (PBDos)

PBDOS inkluderer et integreret udviklingsmiljø (IDE) og understøtter DOS 3.30 og alle nyere versioner.

PowerBASIC Console Compiler (PBCC)

PBCC er en 32-bit compiler til Windows 9x- serien og Windows NT- serien af ​​operativsystemer, herunder Windows XP , Windows Server 2008 , Windows Vista og Windows 7 . PBCC-applikationer kan bruge dynamiske linkbiblioteker (DLL'er). Compileren leveres med en IDE inklusive en editor og step debugger .

Intet kendskab til Windows-programmering er påkrævet for at oprette tegntilstand eller grafiske applikationer med denne compiler. Common Gateway Interface- eksekverbare filer kan også kompileres ved hjælp af PBCC.

PBCC opretter kun eksekverbare filer, ikke DLL'er. (PBWin - se nedenfor - kan oprette begge dele.)

PowerBASIC Compiler til Windows (PBWin)

PBWin er en 32-bit compiler kompatibel med Windows 9x- serien og Windows NT- serien af ​​operativsystemer, herunder Windows XP , Windows Server 2008 , Windows Vista , Windows 7 , Windows 8 ( 8.1 ) og Windows 10 . PBWin kan oprette dynamiske linkbiblioteker . PBWin-applikationer kan læse biblioteker med dynamisk link]. PBWin leveres med en compiler, IDE med editor og step- debugger .

Dynamiske dialogværktøjer (DDT)

Du kan oprette en applikations grafiske brugergrænseflade ved hjælp af Windows API eller ved hjælp af de indbyggede DDT-sprogudvidelser. Gruppen af ​​BASIC-sætninger, der omslutter Windows API- funktioner, især ved oprettelse og håndtering af dialogbokse og underordnede kontroller, kaldes samlet Dynamic Dialog Tools. Brug af DDT kræver mindre kodning end at oprette et lignende program ved hjælp af Windows API . Brug af DDT og Windows API (kendt som SDK-stil som i Microsoft Windows SDK ) udelukker ikke hinanden.

Prøveversioner af compilere

PowerBASIC omdøbte PBWin v9.07 og PB / CC v5.07 til henholdsvis "Classic PBWin" og "Classic PB / CC" og den 1. november 2016 tilbød dem i en kort periode gennem deres onlinebutik som gratis, ingen- nag, prøveversioner sammen med PBForms v1.0 (PowerBASIC Forms).

Værktøjer

PB-formularer

PowerBASIC-formularer, der kan købes separat, er et tillæg til grafisk brugergrænsefladesignværktøj til PBWin. Det producerer automatisk kildekode ved hjælp af DDT-sprogudvidelsen, der opretter formularer ved hjælp af Windows grafiske brugergrænseflade.

COM-browser

PowerBASIC COM-browseren, der følger med PBWin, er et program, der afslører grænseflader, metoder og egenskaber for COM-objekter som beskrevet af typebiblioteksfiler. PowerBASIC COM-browseren eksporterer en interface-struktur af et COM-objekt til tidligt bindende formål i PowerBASIC-kode og giver syntaksreference og konteksthjælp på de interface-medlemmer, der udsættes for et COM-objekt.

Programmeringssprog

Egenskaber

PowerBASIC er en oprindelig kode BASIC-kompilator, hvis rapporterede fordele er enkelhed i brug og hastighed sammenlignet med andre sprog. Selvom den kompilerede kode er hurtig nok til de fleste formål, understøtter kompilatorerne også inline assembler til yderligere kodeoptimering. Windows-compilerne (PBWin & PBCC) understøtter næsten alle x86-instruktionssættet , inklusive FPU , SIMD og MMX , hvor de vigtigste undtagelser er nogle få, der hovedsagelig er nyttige for systemprogrammerere. Man kan stadig bruge de ikke-understøttede instruktioner ved at indsætte deres opkoder med "db", "dw" og "dd" udsagn. Linjer med samlerkode kan frit blandes med linjer med BASIC-kode, selvom man altid skal overveje de potentielle interaktioner mellem de to typer koder.

Hej Verden

Hello world bruges til at give et meget lille eksempel på den syntaks, der bruges af et programmeringssprog og er ofte det mindst mulige program for et givet programmeringssprog.

Her er et eksempel på et PBCC hej verdensprogram. Som standard opretter PBCC et konsolvindue ved kørsel til visning af output. Det eneste formål med Waitkey $ i dette eksempel er at holde konsollen oppe, så du kan læse output.

Function PBMain

  Print "Hello, World!"
  Waitkey$

End Function

Her er PBWin-versionen, der viser en Windows "dialog" -meddelelsesboks.

Function PBMain

  MsgBox "Hello, World!"

End Function

Objektorienteret programmering

PBWin og PBCC understøtter objektorienteret programmering i form af COM- klasser, men compilerne tvinger dig ikke til at bruge OOP, det er kun en mulighed. In-process og out-of-process COM-servere kan også bygges ved hjælp af disse compilere.

Grafik

Både Console Compiler og Windows Compiler kan oprette grafiske vinduer. GRAPHICs-udsagnene er højere end Windows ' GDI-biblioteksfunktioner ( Graphics Device Interface ).

Elementer i de GRAFISKE udsagn

GRAPHIC WINDOWS er ​​dedikerede dialoger, der hver indeholder en enkelt kontrol, der udfylder dialogens klientområde. GRAPHIC-kontroller er underordnede vinduer, der understøtter den samme GRAPHIC-tegningsfunktionalitet som GRAPHIC-vinduer. GRAFISKE BITMAPS er også defineret, hvilket igen understøtter GRAPHIC-tegningsfunktionaliteten, men som rent hukommelsesobjekter som Windows Bitmaps eller DIB-sektioner . Udtalelser om håndtering af tastatur og mus er inkluderet i de GRAFISKE udsagn. Tegnudgang til et GRAFISK mål bruger skrifttyper, der er specificeret via FONT NEW-sætningen.

Oprettelse af et GRAPHIC WINDOW-program

Et grafisk vindue svarer til en Windows- dialogboks, der indeholder en statisk kontrol, hvor tegnefunktioner kan udføres. En enkelt BASIC-sætning opretter et GRAPHIC WINDOW og angiver dens størrelse, position og titel. Det er ikke vigtigt at angive en WNDPROC til GRAPHIC WINDOW. Et kort kildekodeeksempel for en komplet GRAPHIC WINDOW-applikation følger:

#Compile Exe ' using either PBCC6 or PBWIN10 compiler
#Dim All

Function PBMain
    Local GW As Dword
    ' start a GRAPHIC WINDOW
    Graphic Window New "graphic window", 100, 100, 200, 200 to GW
    ' show a coloured disc
    Graphic Ellipse (10, 10)-(190, 190), %rgb_Red, %rgb_SeaGreen, 0
    ' wait for a keypress
    Graphic Waitkey$
End Function
Sammenligning af PB GRAPHIC-udsagn med GDI API

Ved hjælp af PB GRAPHIC-udsagn vælges først et GRAPHIC (WINDOW, BITMAP eller kontrol) som det aktuelle GRAPHIC-mål, hvorefter der udføres operationer på det uden at det skal identificeres igen. Kontraster dette med GDI API-tilgangen, hvor Device Context- håndtaget kræves til hver tegning.

Det er ikke nødvendigt, når du bruger PB GRAPHIC-udsagnene til at definere en børste eller pen som en separat enhed, og det er heller ikke nødvendigt at tegne det GRAPHIC-mål (når det ses) som svar på Windows-meddelelser som WM_PAINT og WM_ERASEBKGND. GRAFISKE mål er vedvarende.

Når GRAFISKE mål er vedhæftet, kan der vælges en REDRAW-indstilling, der buffrer resultaterne af tegneoperationer, indtil de specifikt anmodes om. Brug af denne teknik reducerer flimmer på samme måde som teknikken til at trække på hukommelses- DC'er, når du bruger GDI API.

Pixeloperationer er mulige ved hjælp af GRAPHIC GET | SET PIXEL-udsagnene på en måde svarende til GetPixel / SetPixel i GDI API. GRAPHIC GET BITS gør det muligt at indlæse hele bitmap i en dynamisk streng. Dette kan manipuleres enten som en streng eller ved at kortlægge en matrix på den. Det kan placeres tilbage i det GRAFISKE mål ved GRAFISKE SET BITS.

Komplementaritet med GRAPHIC-udsagn og Windows GDI API

GRAPHIC-udsagnene indeholder alle de almindeligt anvendte GDI API-funktioner, men hvis du har brug for en, der ikke er inkluderet, er det muligt at få hDC for ethvert GRAPHIC-mål og derved bruge GDI API-funktioner på det.

Brugerfællesskab

PowerBASIC giver et online forum, hvor brugerne kan stille spørgsmål og dele viden. Den 8. juli 2012 havde forummet 5.623 medlemmer (kun en brøkdel af dem stadig aktive) og indeholdt 50.093 tråde bestående af 408.642 indlæg siden 26. august 1998. Kildekodeafsnittet alene indeholdt 3.768 tråde.

Tredjeparts support

Referencer

eksterne links