SP Forth
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 20. marts 2016; checks kræver
12 redigeringer .
SP-FORTH er en implementering af Forth-sproget , startet af Kaliningrad-programmøren Andrey Cherezov i 1992 [1] . I øjeblikket udvikles projektet af en række deltagere i Russian Forth Interest Group (RU-FIG) [2] . Den implementerer hovedsageligt ANSI 94-standarden, selvom den har en række forskelle og udvidelser [3] . Oprindeligt fungerede det under kontrol af MS DOS -operativsystemet , startende med den 3. version - Windows , i øjeblikket er der også en Linux - version.
Udvidelsesbiblioteker
- Forth assembler
- multithreading support
- understøttelse af kommunikation mellem tråde og programmer (mutexes, semaforer, kanaler osv.)
- understøttelse af multitasking og arbejde som en CGI-applikation
- fuld socket-understøttelse - indkapsling af socket-funktioner i mere bekvemme formater til brug i Forth
- færdige biblioteker til oprettelse af internetservere og klienter
- understøttelse af brugergrænsefladebygningsfunktioner - vinduer, dialogbokse, ikoner, knapper, værktøjslinjer, ListView, TreeView osv.
- grafik understøttelse
- generering af exe-filer
- databaseadgang via ODBC
- programmering af Windows NT-tjenester
- Crypto API support
- implementering af Forths OOP-udvidelser
- DCOM/COM/ActiveX/OLE-understøttelse
- færdige eksempler på brug af alle biblioteker.
Brug
Det har en vis berømmelse takket være den kommercielle pakke EServ [4] skrevet på basis af det af Andrey Cherezov . En anden populær applikationspakke skrevet i SP-Forth er Windows-automatiseringsværktøjet nnCron .
Som et eksempel på brug inden for udstyrskontrol, traditionel for Fort, kan man nævne billedregistreringssystemet, der er oprettet ved Altai State University af A. V. Kalachev [5] .
Versioner
v1.0
En mislykket søgning efter et godt Forth-system til IBM PC'en førte til, at hans egen Forth-oversætter skrev. Den blev udgivet i sommeren 1992 og v1.0 blev grundlaget for alle efterfølgende versioner: Grundordbøgerne v1.01-1.5 var revisioner og forbedringer til den originale v1.0.
v1.5
Siden version 1.5 er der begyndt væsentlige ændringer i SP-Forth. I løbet af et halvt års arbejde med de første versioner af SP-Forth blev alle "flaskehalse" af disse implementeringer identificeret, brugernes ønsker blev taget i betragtning, og udvidelser blev tilføjet. Skrevet i vinteren 1993.
v2.0 Beta
november 1993
- en række eksperimenter med alle eksisterende varianter af gevindkodet ledet fra direkte gevindkode gennem indirekte til subrutine: SP-Forth 2.0 genererer "rigtig maskinkode" denne gang.
- SP-Forth er "ekstraheret" fra 64K-segmentet: v2.0 fungerer i adresserummet på 256K og mere.
- koden er adskilt fra dataene: maskinkoden, der er placeret i CS-segmentet, ændres ikke under kørsel (den kan ændres under kompilering) og kan fungere i ROM (på anmodning fra controllerudviklere). Hele den modificerbare del af kernen, variabler osv. placeres i DS-segmentet.
- information til compileren (ordbogsstrukturer) adskilles fra kode og data og placeres i et separat ES-segment. I det færdige program kan det være fraværende (og er fraværende som standard).
- stakken flyttes uden for datasegmentet (selvom den kan returneres der, hvis det ønskes).
- nu genererer SP-Forth EXE-filer i stedet for COM. Minimumsstørrelsen på en fungerende EXE-fil i denne version er 64 bytes.
v2.5
maj 1994
- kernen overholder ANS-standarden fra 1994;
- mange forældede og ikke-standardord er udelukket fra kernen;
- semantikken af nogle ord er ændret i overensstemmelse med standarden;
- en smule forbedret overordnet ydeevne;
- standardsæt af ord CORE, EXCEPTION, SEARCH, FILE, MEMORY er implementeret i kernen; standardudvidelser CORE-EXT, DOUBLE, FACILITY, TOOLS, STRING præsenteres som biblioteker (kilde) og er delvist til stede i kernen.
v2.5.13
Sidste officielle udgivelse af DOS-versionen af SP-Forth. Yderligere udvikling af dos-versioner er ikke planlagt. Fremtidige versioner af SP-Forth vil køre under Win32.
v3.01
januar 1996
- overgang fra DOS-platformen til Win32;
- ny målkompiler;
- alle CODE-ord omskrives i 32-bit version;
- at opgive 4-segment hukommelsesmodellen til fordel for en flad win32 model;
- overskrifter af ordbogsposter og data er igen "blandet" med koden, som i SP-Forth v<2.0, men muligheden for at adskille dem fra kode og data er bevaret i strukturen af overskrifter;
- alle Windows-funktioner er tilgængelige via "WINAPI:"-konstruktionen;
- kernen bruger kun KERNEL32.DLL-kald;
- som i version 2.*, bruges underprogramsyet kode, men mange detaljer om kodegenerering er blevet ændret;
v3.70
Det er en revideret version af SPF/3.14. Hovedmålene med revisionen er kompilering af SPF i sig selv, forbedring af fejlhåndtering af det fjerde system, "thread-safety" af alle ord til at organisere multithreading allerede på niveau med SPF-kernen.
- SPF/3.70 er kompileret af tidligere versioner af SPF - SPF/3.0-3.16 før SPF/3 blev kompileret kun af Win32 for SPF/3.70 kan kompilere sig selv. Sandt nok vil den resulterende exe afvige i hukommelsesbindingsadresser (med hex 20000).
- I stedet for én fil med kildetekst - nu mere end 30, opdelt efter "emner", OS-afhængigheder, niveau osv. Det er mere bekvemt at navigere og porte uafhængige dele.
- Tilføjede værktøjer til at arbejde med BRUGER-variabler - en traditionel måde for multitasking fort-systemer til at udelukke den gensidige indflydelse fra tråde på fælles variabler. Multithreading blev bragt til kerneniveau - i SPF/3.1x sad det fast ovenpå i form af ts2.txt-biblioteket og patches til READ-FILE og WRITE-FILE, hvilket ikke var en helt komplet implementering af de nødvendige funktioner. Alle SPF Forthwords kan nu frit bruges i multitrådstilstand uden konflikter over delte variabler og buffere - når en tråd oprettes, oprettes dens egne kopier af disse dataområder automatisk.
- Forths strukturerede undtagelseshåndteringsmekanisme CATCH/THROW er kombineret med SEH-undtagelsesfangstmekanismen, der er vedtaget i Windows, som gør det muligt at omdanne selv hardwareundtagelser (divider med nul, adgang til den forkerte adresse osv.) til Forths THROW og håndtere dem programmatisk uden GPF- Windows vinduer. Dette forenkler fejlfindingen i høj grad - i tilfælde af grove fejl vil Forth-systemet ikke gå ned, men vil udsende en detaljeret dump af undtagelsen - fejlkoden, stedet for fejlen (adressen og navnet på ordet) og indholdet af registrene. Denne mekanisme er også multi-threaded, i modsætning til implementeringen i SPF/3.15, som skulle rettes af eksterne biblioteker.
v4.0
Januar 2001 SP-Forth/4.0 udgives under navnet SPF4 og under GPL-licensen.
Noter
- ↑ Andrey Cherezovs side . Hentet 5. april 2012. Arkiveret fra originalen 27. marts 2012. (ubestemt)
- ↑ DA FIG . Hentet 18. maj 2022. Arkiveret fra originalen 25. april 2022. (ubestemt)
- ↑ Funktioner af SPF . Hentet 5. april 2012. Arkiveret fra originalen 4. februar 2012. (ubestemt)
- ↑ Frem i Rusland: nuværende stats- og standardiseringsbestræbelser
- ↑ A.V. Kalachev. Billedregistreringssystem baseret på et enkelt-chip digitalkamera KAC-9630 // Journal of radio electronics. - 2007. - Nr. 6 .
Links