GNU Pascal
GNU Pascal är en gratis Pascal-kompilator för 32 /64-bitars plattformar, en del av GNU-kompilatorfamiljen. Implementerad som ett gränssnitt till GCC (Gnu Compiler Collection), men inte en del av det.
Fördelar:
- Kombinera renheten hos Pascal med riktiga programmeringstekniker
- Stöd för standard och utökad Pascal enligt ISO, ANSI och IEEE (ISO 7185:1990, ISO/IEC 10206:1991, ANSI/IEEE 770X3.160-1989).
- Stöd för andra Pascal-standarder (UCSD Pascal, Borland Pascal, delar av Borland Delphi, Mac Pascal och Pascal-SC) som respekterar principen om rimlighet och elegans.
- Kan distribueras under GNU -licensen .
- Den genererar kod och körs på vilken dator som helst som har GNU C (och detta är nästan vilken 32-bitars eller mer plattform som helst för nästan alla operativsystem: från DOS till HURD ).
Plattformar som stöds
- ix86-gnu (GNU Hurd)
- ix86-linux (Linux 2.x, ELF)
- i486-linuxout
- i486-linuxoldld
- i386-freebsd1.2.0
- AIX 4.2.1
- AIX 4.3
- DJGPP V2 (Dos)
- EMX 0.9B (OS/2, Dos)
- Cygwin32 beta20 och högre (MS-Windows95/98, MS-Windows NT)
- mingw32 (MS-Windows95/98, MS-Windows NT)
- MSYS (MS-Windows)
- mips-sgi-irix5.3
- mips-sgi-irix6.5
- sun-sparc-sunos4.1.4
- sparc-sun-solaris2.x
- sun-sparc-solaris 2.5.1
- sun-sparc-solaris 2.6
- sun-sparc-solaris 7
- sun-sparc-solaris 8
- alfa-okänd-linux
- alfa-dec-osf4.0b
- s390-ibm-linux-gnu
Stöd för operativsystem
- gnu Hurd,
- Linux på Intel, Alpha, S390 och alla andra hårdvarutyper som stöds,
- BSD-familj: FreeBSD, NetBSD, OpenBSD,
- DOS i 32-bitarsläge med DJGPP eller EMX ,
- MS-Windows 9x/NT med Cygwin eller MinGW eller MSYS ,
- OS/2 med EMX ,
- MacOS X,
- MIPS-SGI-IRIX,
- Alpha DEC OSF,
- Sparc - Sun - Solaris ,
- HP/UX,
Kan fungera som en korskompilator som porterar kod mellan dessa system. Genererar kod av mycket hög kvalitet för alla dessa system. Det är fri programvara enligt GNU . Kompatibel med andra felsöknings- och utvecklingsverktyg som GNU C, gdb , etc.
Stöd för språkkonstruktioner
- Från standard Pascal: Många kompilatorer utökar syntaxen för standard Pascal, även om de inte fullt ut implementerar den ursprungliga Pascal, saknar mycket viktiga punkter:
- Stöd för arrayer som procedur/funktionsparametrar i formen
Arr: array[a..b] av heltal;
där a och b visar början och slutet av Arr-matrisen.
- Möjlighet att skicka lokala procedurer som parametrar med full tillgång till alla variabler i den överordnade proceduren.
- Automatiska filtillägg till Put and Get-procedurerna.
- Åtta booleaner packade i en array eller struktur tar upp exakt 1 byte.
- Stöd för temporära filer: du behöver inte tänka på filnamnet och ta bort det senare.
- Global goto: Du kan hoppa var som helst och när som helst, inte begränsat till den nuvarande proceduren.
- Automatisk inställning av parametrar och alternativ för inmatningar i Ny.
- Set utan storleksbegränsningar.
- Från Extended Pascal:
- Strängar av obegränsad längd.
- ReadStr, WriteStr - skriva och läsa till en sträng, som WriteLn, ReadLn.
- Systemoberoende tid/datum rutiner.
- Ställ in iteration:
för Ch i ['A' .. 'Z', 'a' .. 'z'] gör …
- Utökat stöd för set.
- Skapa Succ och Pred funktioner: Foo := Succ(Bar, 5);
- Komplexa tal
- Operatorer för exponentiering med stöd för komplexa tal
- Initiering av variabler
- Funktioner kan returnera arrayer och strukturer
- Modulstöd _
- Stöd för icke-decimala tal i stil: bas#nummer
- MinReal, MaxReal, EpsReal, MaxChar - konstanter
- Stöd för dynamiska arrayer utan smutsiga tricks
- Lokala parametrar kan endast ha en storleksinställning när man går in i proceduren (dynamisk storlek)
- Åtkomst till endast en del av arrayen på vänster sida av uppgiften
Arr1(3..5) := Arr(4..6);
- Från Borland Pascal:
- Stöd för enheter, föremål etc. Även absoluta tricks görs bärbara.
- Stöd för en komplett uppsättning standardenheter
- Stöd för nätverks-CRT: programmet kan köras på en dator, och resultatet av dess arbete kan ses på en annan, det finns också stöd för överlappande fönster
- Slumpmässiga proceduren producerar till och med samma sekvens av slumptal som BP Random()
- Stöd för BP-liknande procedurvariabler
- Stöd för arrayer och procedurer som tillåter åtkomst till I/O-portar på processorn
- Distribueras med binobj-program som fungerar som på BP
- Från Delphi
- Abstrakta typer och metoder
- // stilkommentarer
- Tom parameterlista: ()
- Stöd för påståenden
- Initiera och slutföra för att hantera variabler på en låg nivå
- Initiera och slutföra avsnitt för moduler
- Från Pascal-SC
- Användardefinierade operatörer. Till exempel lägga till vektorer med en enkel "+"-operator.
- GNU-tillägg:
- 64-bitars signerade och osignerade heltalstyper
- Stöd för kodexekvering i andra programmeringsspråk
- Infoga Pascal-kod i andra programmeringsspråk
- Stöd för procedurer BitSizeOf(), ConvertFromBigEndian() , etc. för att öka portabiliteten av program till andra plattformar
- Stöd för DirSeparator, PathSeparator, GetTempDirectory kommer att göra programmet mer portabelt
- PExecute - portabel lansering av program för multitasking-system
- Funktioner FSplit, FSearch, FExpand - vet om funktionerna i operativsystemet
- FormatTime - ger tid enligt vissa regler
Se även
Länkar