GNU Pascal
GNU Pascal este un compilator Pascal gratuit pentru platforme pe 32/64 de biți, parte a familiei de compilatoare GNU. Implementat ca front-end pentru GCC (Gnu Compiler Collection), dar nu face parte din acesta.
Avantaje:
- Combinând puritatea lui Pascal cu tehnici reale de programare
- Suport pentru Pascal standard și extins conform ISO, ANSI și IEEE (ISO 7185:1990, ISO/IEC 10206:1991, ANSI/IEEE 770X3.160-1989).
- Suport pentru alte standarde Pascal (UCSD Pascal, Borland Pascal, părți din Borland Delphi, Mac Pascal și Pascal-SC) respectând principiul rezonabilității și eleganței.
- Poate fi distribuit sub licență GNU .
- Acesta generează cod și rulează pe orice computer care are GNU C (și aceasta este aproape orice platformă pe 32 de biți sau mai mult pentru aproape orice sistem de operare: de la DOS la HURD ).
Platforme acceptate
- 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 și o versiune ulterioară (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-necunoscut-linux
- alfa-dec-osf4.0b
- s390-ibm-linux-gnu
Suport pentru sistemul de operare
- gnu Hurd,
- Linux pe Intel, Alpha, S390 și toate celelalte tipuri de hardware acceptate,
- Familia BSD: FreeBSD, NetBSD, OpenBSD,
- DOS în modul pe 32 de biți folosind DJGPP sau EMX ,
- MS-Windows 9x/NT folosind Cygwin sau MinGW sau MSYS ,
- OS/2 folosind EMX ,
- Mac OS X,
- MIPS-SGI-IRIX,
- Alpha DEC OSF,
- Sparc - Soare - Solaris ,
- HP/UX,
Poate servi ca un compilator încrucișat , portarea codului între aceste sisteme. Generează cod de foarte înaltă calitate pentru toate aceste sisteme. Este un software gratuit conform GNU . Compatibil cu alte instrumente de depanare și dezvoltare, cum ar fi GNU C, gdb etc.
Suport pentru constructe de limbaj
- Din Pascal standard: Mulți compilatori extind sintaxa Pascal standard, deși nu implementează complet Pascalul original, lipsind puncte foarte importante:
- Suport pentru matrice ca parametri de procedură/funcție sub forma
Arr: array[a..b] de Integer;
unde a și b arată începutul și sfârșitul matricei Arr.
- Abilitatea de a trece proceduri locale ca parametri cu acces deplin la toate variabilele procedurii părinte.
- Extensii automate de fișiere la procedurile Put and Get.
- Opt valori booleeni împachetate într-o matrice sau structură ocupă exact 1 octet.
- Suport pentru fișiere temporare: nu trebuie să vă gândiți la numele fișierului și să îl ștergeți mai târziu.
- Goto global: puteți sări oriunde și oricând, fără a se limita la procedura curentă.
- Setarea automată a parametrilor și a opțiunilor pentru intrări în Nou.
- Set fără restricții de dimensiune.
- Din Pascal extins:
- Șiruri de lungime nelimitată.
- ReadStr, WriteStr - scrierea și citirea într-un șir, cum ar fi WriteLn, ReadLn.
- Rutine de oră/dată independente de sistem.
- Setare iterație:
pentru Ch în ['A' .. 'Z', 'a' .. 'z'] face...
- Suport extins pentru seturi.
- Crearea funcțiilor Succ și Pred: Foo := Succ(Bar, 5);
- Numere complexe
- Operatori pentru exponentiare cu suport pentru numere complexe
- Inițializarea variabilelor
- Funcțiile pot returna matrice și structuri
- Suport modul
- Suport pentru numere non-zecimale în stil: bază#număr
- MinReal, MaxReal, EpsReal, MaxChar - constante
- Suport pentru matrice dinamice fără trucuri murdare
- Parametrii locali pot avea o dimensiune setata doar la intrarea in procedura (dimensiune dinamica)
- Accesați doar o parte a matricei din partea stângă a sarcinii
Arr1(3..5) := Arr(4..6);
- De la Borland Pascal:
- Suport pentru unități, obiecte etc. Chiar și trucurile absolute sunt portabile.
- Suport pentru un set complet de unități standard
- Suport pentru CRT de rețea: programul poate fi executat pe un computer, iar rezultatul muncii sale poate fi văzut pe altul, există și suport pentru ferestre suprapuse
- Procedura Random chiar produce aceeași secvență de numere aleatoare ca BP Random()
- Suport pentru variabile procedurale de tip BP
- Suport pentru matrice și proceduri care permit accesul la porturile I/O ale procesorului
- Distribuit cu programul binobj care funcționează ca pe BP
- Din Delphi
- Tipuri și metode abstracte
- // comentarii de stil
- Lista de parametri goală: ()
- Suport pentru afirmații
- Inițializați și finalizați pentru a gestiona variabilele la un nivel scăzut
- Inițializați și finalizați secțiuni pentru module
- De la Pascal-SC
- Operatori definiți de utilizator. De exemplu, adăugarea de vectori cu un simplu operator „+”.
- Extensii GNU:
- Tipuri întregi semnate și nesemnate pe 64 de biți
- Suport pentru execuția codului în alte limbaje de programare
- Inserarea codului Pascal în alte limbaje de programare
- Suport pentru procedurile BitSizeOf(), ConvertFromBigEndian() etc. pentru a crește portabilitatea programelor pe alte platforme
- Suportul pentru DirSeparator, PathSeparator, GetTempDirectory va face programul mai portabil
- PExecute - lansare portabilă de programe pentru sisteme multitasking
- Funcții FSplit, FSearch, FExpand - cunoașteți caracteristicile sistemului de operare
- FormatTime - oferă timp conform anumitor reguli
Vezi și
Link -uri