Hvad er PRG-filformatet?
.prg er en kildekodefil, der primært er forbundet med xBase-familien af database-programmeringssprog, herunder dBASE, FoxPro, Visual FoxPro, Clipper og den moderne open-source Harbour compiler. En .prg-fil er også en generisk filendelse, der bruges af forskellige programmer til at gemme makroer eller programinstruktioner; sådanne filer er ikke standardiserede og tjener forskellige formål afhængigt af applikationen.
I sin dominerende xBase-rolle gemmer en .prg kildekode i almindelig tekst - ikke binære data - hvilket gør den læsbar i enhver teksteditor. Et typisk program begynder med kommentarlinjer (præfikset med * eller &&), SET-direktiver og PROCEDURE/FUNCTION-blokke, der opererer på .dbf databasetabeller. Når den kompileres, producerer FoxPro en binær .fxp objektfil, mens Clipper og Harbour genererer en indfødt eksekverbar fil; selve .prg-kilden er altid menneskeligt læsbar. xBase-sproget går tilbage til dBASE II/III i de tidlige 1980'ere og dominerede desktop-databaseprogrammering gennem 1990'erne. Visual FoxPro 9.0 SP2 (2007) var den sidste store kommercielle udgivelse; sproget lever videre gennem open-source Harbour-projektet.
.prg-filer bruges undertiden af programmører eller universitetslektorer til uddannelses- eller testformål. Sådanne filer kan gemme pseudokode - en uformel beskrivelse på højt niveau af et computerprogram eller en algoritme i almindelig tekst. Pseudokode er en abstraktion, ikke en implementering, af et computerprogram; det indeholder standard kontrolinstruktioner såsom løkker eller betingede udtryk i et menneskeligt læsbart frem for maskinlæsbart format. Pseudokode er sproguafhængig og kan ikke eksekveres på en computer. .prg-filer vælges undertiden til pseudokode netop fordi filendelsen ikke refererer til noget specifikt programmeringssprog.
Sikkerhed og tryghed
RISIKO: MEDIUMEn .prg er kildekode i almindelig tekst, så selve filen kan ikke eksekveres ved at blive åbnet i en editor - det er sikkert at læse en. Risikoen ligger i, hvad den gør, når den køres/kompileres: xBase-kode kan køre shell-kommandoer (RUN/!), læse og skrive databasefiler og slette data, så kør eller kompiler ikke blindt en upålidelig .prg. Læs kilden først, kør legacy-apps i et isoleret/VM-miljø, og vær påpasselig med programmer, der rører ved .dbf-data, du holder af. (Den urelaterede GEM/Atari .prg er en ægte binær eksekverbar fil - behandl enhver .prg, der er binær og ikke tekst, med ekstra forsigtighed.)
Formatdetaljer
kort fortalt- GEM / Atari ST program - På Atari ST og GEM/DOS er .prg en eksekverbar PROGRAM-fil (en ægte binær fil), ikke kildekode.
- Lotus 1-2-3 / Symphony program - Nogle Lotus- og andre DOS-æra-apps brugte .prg til makro-/programscripts.
- MicroSim PCBoard / WAVmaker fil - Enkelte ingeniør- og musikværktøjer genbrugte .prg til deres egne data; sjældent og urelateret til xBase.
Programmer der åbner PRG-filer
Tekniske detaljer
dyb specifikation| Filtype | Almindelig tekst xBase (dBASE/FoxPro/Clipper) kildekode |
| MIME-type | text/plain; ses også som text/x-prg |
| Tegnkodning | ASCII / Windows-1252 for vestlige sprog; legacy OEM DOS-tegnsæt i ældre østeuropæiske filer |
| Filsignatur (magic bytes) | Ingen - almindelig tekst uden binær header; programmer åbner typisk med kommentarlinjer (* eller &&), SET-direktiver eller en PROCEDURE/FUNCTION-erklæring |
| Typisk filstørrelse | 1 KB til et par hundrede KB kildetekst |
| Kompileringsoutput | FoxPro/VFP kompilerer .prg til en binær .fxp objektfil; Clipper og Harbour kompilerer til en indfødt eksekverbar fil |
| Tilhørende dataformat | .dbf - xBase-programmer er tæt knyttet til dBASE-tabelfiler til datalagring og hentning |
| Komprimering | Ingen i kildeform |
| Kryptering / distribution | Kilde-.prg er ukrypteret almindelig tekst; FoxPro kan kryptere kompileret .app-output til kommerciel distribution |
| Sproglige dialektvarianter | dBASE III/IV, FoxPro 2.x, Visual FoxPro 6-9 (OOP-udvidelser), Clipper 5.x, Harbour, xHarbour - samme .prg-endelse med subtilt forskellig syntaks |
| Kommentarsyntaks | Linjekommentarer begynder med * (stjerne ved linjestart) eller && (inline); NOTE-nøgleordet er også gyldigt |
| Objektorienteret understøttelse | Visual FoxPro introducerede DEFINE CLASS / ENDDEFINE-blokke inde i .prg-filer, hvilket muliggør OOP sammen med procedurel kode |
| Kontrolflow-nøgleord | IF/ENDIF, DO WHILE/ENDDO, FOR/NEXT, DO CASE/ENDCASE, SCAN/ENDSCAN - xBase-specifik syntaks |
| OS-understøttelse | Oprindeligt DOS og Windows (dBASE, FoxPro, VFP); Harbour muliggør Linux- og macOS-kompilering fra den samme .prg-kilde |
| Nuværende økosystem | Kommercielle værktøjer er udgået (Visual FoxPro 9.0 SP2 var den sidste i 2007); vedligeholdes aktivt via open-source Harbour- og xHarbour-projekter |
| Udgivet | early 1980s with dBASE II/III; adopted by FoxPro, Clipper and later Visual FoxPro |
| Seneste version | Visual FoxPro 9.0 SP2 (2007) was the last major host; the language lives on in open-source Harbour |
| Åben standard | Ja · royaltyfri |
| Specifikation | learn.microsoft.com |
PRG-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om PRG-filer.