SP Forth
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 20 mars 2016; kontroller kräver
12 redigeringar .
SP-FORTH är en implementering av Forth-språket , startat av Kaliningrad-programmeraren Andrey Cherezov 1992 [1] . För närvarande utvecklas projektet av ett antal deltagare i Russian Forth Interest Group (RU-FIG) [2] . Den implementerar huvudsakligen ANSI 94-standarden, även om den har ett antal skillnader och tillägg [3] . Inledningsvis fungerade det under kontroll av MS DOS - operativsystemet , från och med den 3:e versionen - Windows , för närvarande finns det också en Linux- version.
Tilläggsbibliotek
- Forth assembler
- stöd för flera trådar
- stöd för kommunikation mellan trådar och program (mutex, semaforer, kanaler, etc.)
- stöd för multitasking och att arbeta som en CGI-applikation
- stöd för fullt uttag - inkapsling av uttagsfunktioner i mer bekväma format för användning i Forth
- färdiga bibliotek för att skapa Internetservrar och klienter
- stöd för användargränssnittsbyggande funktioner - fönster, dialogrutor, ikoner, knappar, verktygsfält, ListView, TreeView, etc.
- grafikstöd
- generering av exe-filer
- databasåtkomst via ODBC
- programmering av Windows NT-tjänster
- Stöd för Crypto API
- implementering av Forths OOP-tillägg
- Stöd för DCOM/COM/ActiveX/OLE
- färdiga exempel på användning av alla bibliotek.
Användning
Det har en viss berömmelse tack vare det kommersiella paketet EServ [4] skrivet på grundval av det av Andrey Cherezov . Ett annat populärt applikationspaket skrivet i SP-Forth är Windows-automatiseringsverktyget nnCron .
Som ett exempel på användning inom området för utrustningskontroll traditionellt för Fort, kan man nämna bildregistreringssystemet som skapats vid Altai State University av A. V. Kalachev [5] .
Versioner
v1.0
En misslyckad sökning efter ett bra Forth-system för IBM PC ledde till att hans egen Forth-översättare skrevs. Den släpptes sommaren 1992 och v1.0 blev grunden för alla efterföljande versioner: basordböckerna v1.01-1.5 var revisioner och förbättringar av den ursprungliga v1.0.
v1.5
Sedan version 1.5 har betydande förändringar påbörjats i SP-Forth. Under ett halvårs arbete med de första versionerna av SP-Forth identifierades alla "flaskhalsar" i dessa implementeringar, användarnas önskemål togs i beaktande och tillägg lades till. Skrivet vintern 1993.
v2.0 beta
november 1993
- en serie experiment med alla befintliga varianter av gängad kod ledde från direkt gängad kod via indirekt till subrutin: SP-Forth 2.0 genererar "riktig maskinkod" denna gång.
- SP-Forth är "extraherat" från 64K-segmentet: v2.0 fungerar i adressutrymmet på 256K och mer.
- koden är separerad från data: maskinkoden som finns i CS-segmentet ändras inte under körning (den kan ändras under kompilering) och kan fungera i ROM (på begäran av kontrollutvecklare). Hela den modifierbara delen av kärnan, variabler etc. placeras i DS-segmentet.
- information för kompilatorn (ordboksstrukturer) separeras från kod och data och placeras i ett separat ES-segment. I det färdiga programmet kan det vara frånvarande (och saknas som standard).
- stacken flyttas utanför datasegmentet (även om den kan returneras dit om så önskas).
- nu genererar SP-Forth EXE-filer istället för COM. Minsta storlek på en fungerande EXE-fil i denna version är 64 byte.
v2.5
maj 1994
- kärnan överensstämmer med 1994 års ANS-standard;
- många föråldrade och icke-standardiserade ord är uteslutna från kärnan;
- semantiken för vissa ord har ändrats i enlighet med standarden;
- något förbättrad total prestanda;
- standarduppsättningar av ord CORE, EXCEPTION, SEARCH, FILE, MEMORY implementeras i kärnan; standardtillägg CORE-EXT, DOUBLE, FACILITY, TOOLS, STRING presenteras som bibliotek (källa) och finns delvis i kärnan.
v2.5.13
Senaste officiella utgåvan av DOS-versionen av SP-Forth. Ytterligare utveckling av dos-versioner är inte planerad. Framtida versioner av SP-Forth kommer att köras under Win32.
v3.01
januari 1996
- övergång från DOS-plattformen till Win32;
- ny målkompilator;
- alla KOD-ord skrivs om i 32-bitarsversion;
- överge minnesmodellen med 4 segment till förmån för en platt win32-modell;
- rubriker för ordboksposter och data är återigen "blandade" med koden, som i SP-Forth v<2.0, men möjligheten att separera dem från kod och data bevaras i strukturen av rubriker;
- alla Windows-funktioner är tillgängliga via "WINAPI:"-konstruktionen;
- kärnan använder endast KERNEL32.DLL-anrop;
- som i version 2.*, används underprogramsydd kod, men många detaljer om kodgenerering har ändrats;
v3.70
Det är en reviderad version av SPF/3.14. Huvudmålen med revisionen är sammanställning av SPF i sig, förbättring av felhanteringen av det fjärde systemet, "trådsäkerhet" av alla ord för att organisera multithreading redan på nivån av SPF-kärnan.
- SPF/3.70 kompileras av tidigare versioner av SPF - SPF/3.0-3.16 innan SPF/3 kompilerades endast av Win32 för SPF/3.70 kan kompilera sig själv. Det är sant att den resulterande exe-filen skiljer sig i minnesbindningsadresser (med hex 20000).
- Istället för en fil med källtext - nu fler än 30, uppdelade efter "ämnen", OS-beroenden, nivå osv. Det är bekvämare att navigera och porta oberoende delar.
- Tillagda verktyg för att arbeta med USER-variabler - ett traditionellt sätt för multitasking fort-system för att utesluta ömsesidig påverkan av trådar på vanliga variabler. Multithreading togs till kärnnivån - i SPF/3.1x fastnade den på toppen i form av ts2.txt-biblioteket och patchar för READ-FILE och WRITE-FILE, vilket inte var en helt komplett implementering av de nödvändiga funktionerna. Alla SPF Forthwords kan nu användas fritt i flertrådsläge utan konflikter över delade variabler och buffertar - när en tråd skapas skapas automatiskt egna kopior av dessa dataområden.
- Forths strukturerade undantagshanteringsmekanism CATCH/THROW kombineras med SEH-undantagsfångningsmekanismen som antagits i Windows, som gör det möjligt att förvandla även hårdvaruundantag (dividera med noll, åtkomst till fel adress, etc.) till Forths THROW och hantera dem programmatiskt utan GPF- Windows fönster. Detta förenklar felsökningen avsevärt - i händelse av grova fel kommer Forth-systemet inte att krascha, utan kommer att utfärda en detaljerad dump av undantaget - felkoden, platsen för felet (adressen och namnet på ordet) och innehållet i registren. Denna mekanism är också flertrådad, till skillnad från implementeringen i SPF/3.15, som måste fixas av externa bibliotek.
v4.0
Januari 2001 SP-Forth/4.0 släpps under namnet SPF4 och under GPL-licensen.
Anteckningar
- ↑ Andrey Cherezovs sida . Hämtad 5 april 2012. Arkiverad från originalet 27 mars 2012. (obestämd)
- ↑ SV FIG . Hämtad 18 maj 2022. Arkiverad från originalet 25 april 2022. (obestämd)
- ↑ Funktioner hos SPF . Hämtad 5 april 2012. Arkiverad från originalet 4 februari 2012. (obestämd)
- ↑ Framåt i Ryssland: nuvarande statliga och standardiseringsansträngningar
- ↑ A.V. Kalachev. Bildregistreringssystem baserat på en digitalkamera med ett chip KAC-9630 // Journal of radio electronics. - 2007. - Nr 6 .
Länkar