PowerBASIC - PowerBASIC
|
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 |
| Stabil frigivelse | 10.0 (4. maj 2011 )
|
| Internet side | www. |
| 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
- Officiel hjemmeside PowerBASIC selskabs hjemmeside
- PowerBasic Peer Support Community
- Börje Hagstens filer
- Don Dickinsons PowerBASIC-kode
- Gary Benes gbSnippets
- FreeBases side om PowerBASIC (arkiveret 2014)
- DeresCorps PowerBASIC-projekter på SourceForge
- Bøger på internetarkiv :
- Borland Turbo Basic 1.x - Statistik, downloads og skærmbilleder :: WinWorld - Abandonware og pre-release software