GNU Pascal
GNU Pascal je freewarový kompilátor Pascalu pro 32 /64bitové platformy, který je součástí rodiny kompilátorů GNU. Implementováno jako frontend ke GCC (Gnu Compiler Collection), ale není jeho součástí.
výhody:
- Kombinace čistoty Pascalu se skutečnými programovacími technikami
- Podpora standardního a rozšířeného Pascalu podle ISO, ANSI a IEEE (ISO 7185:1990, ISO/IEC 10206:1991, ANSI/IEEE 770X3.160-1989).
- Podpora dalších standardů Pascal (UCSD Pascal, Borland Pascal, části Borland Delphi, Mac Pascal a Pascal-SC) respektující princip přiměřenosti a elegance.
- Může být distribuován pod licencí GNU .
- Generuje kód a běží na jakémkoli počítači, který má GNU C (a to je téměř jakákoli 32bitová nebo více platforma pro téměř jakýkoli OS: od DOS po HURD ).
Podporované platformy
- 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 a vyšší (MS-Windows95/98, MS-Windows NT)
- mingw32 (MS-Windows95/98, MS-Windows NT)
- MSYS (MS-Windows)
- mips-sgi-irix5.3
- mips-sgi-irix6.5
- slunce-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
- alpha-unknown-linux
- alpha-dec-osf4.0b
- s390-ibm-linux-gnu
Podpora operačního systému
- gnu Hurd,
- Linux na Intel, Alpha, S390 a všech dalších podporovaných typech hardwaru,
- Rodina BSD: FreeBSD, NetBSD, OpenBSD,
- DOS v 32bitovém režimu pomocí DJGPP nebo EMX ,
- MS-Windows 9x/NT pomocí Cygwin nebo MinGW nebo MSYS ,
- OS/2 pomocí EMX ,
- MacOS X,
- MIPS-SGI-IRIX,
- Alpha DEC OSF,
- Sparc - Sun - Solaris ,
- HP/UX,
Může sloužit jako křížový kompilátor , který přenáší kód mezi těmito systémy. Generuje velmi kvalitní kód pro všechny tyto systémy. Je to svobodný software podle GNU . Kompatibilní s jinými nástroji pro ladění a vývoj, jako je GNU C, gdb atd.
Podpora jazykových konstrukcí
- Ze standardního Pascalu: Mnoho kompilátorů rozšiřuje syntaxi standardního Pascalu, i když plně neimplementují původní Pascal, chybí jim velmi důležité body:
- Podpora polí jako parametrů procedury/funkce ve tvaru
Arr: array[a..b] of Integer;
kde aab ukazují začátek a konec pole Arr.
- Možnost předávat lokální procedury jako parametry s plným přístupem ke všem proměnným nadřazené procedury.
- Automatické přípony souborů k procedurám Put a Get.
- Osm booleanů zabalených do pole nebo struktury zabírá přesně 1 bajt.
- Podpora dočasných souborů: nemusíte přemýšlet nad názvem souboru a později jej smazat.
- Globální goto: Můžete skákat kdekoli a kdykoli, bez omezení na aktuální postup.
- Automatické nastavení parametrů a možností pro záznamy v Nové.
- Sada bez omezení velikosti.
- Z Extended Pascal:
- Struny neomezené délky.
- ReadStr, WriteStr - zápis a čtení do řetězce, jako WriteLn, ReadLn.
- Systémově nezávislé rutiny času a data.
- Nastavte iteraci:
pro Ch v ['A' .. 'Z', 'a' .. 'z'] udělejte …
- Rozšířená podpora pro sady.
- Vytváření funkcí Succ a Pred: Foo := Succ(Bar, 5);
- Komplexní čísla
- Operátory pro umocňování s podporou komplexních čísel
- Inicializace proměnných
- Funkce mohou vracet pole a struktury
- Podpora modulů
- Podpora nedesítkových čísel ve stylu: base#number
- MinReal, MaxReal, EpsReal, MaxChar - konstanty
- Podpora dynamických polí bez špinavých triků
- Lokální parametry mohou mít nastavenou velikost pouze při zadávání procedury (dynamická velikost)
- Přístup pouze k části pole na levé straně úkolu
Arr1(3..5) := Arr(4..6);
- Od Borland Pascal:
- Podpora jednotek, objektů atd. Dokonce i absolutní triky jsou přenosné.
- Podpora pro celou sadu standardních jednotek
- Podpora síťového CRT: program lze spustit na jednom počítači a výsledek jeho práce lze vidět na jiném, nechybí ani podpora překrývajících se oken
- Procedura Random dokonce vytváří stejnou sekvenci náhodných čísel jako BP Random()
- Podpora procedurálních proměnných ve stylu BP
- Podpora polí a procedur, které umožňují přístup k I/O portům procesoru
- Distribuováno s programem binobj, který funguje jako na BP
- Z Delphi
- Abstraktní typy a metody
- // styl komentáře
- Prázdný seznam parametrů: ()
- Podpora pro tvrzení
- Inicializovat a Finalizovat pro správu proměnných na nízké úrovni
- Inicializujte a dokončete sekce pro moduly
- Od Pascal-SC
- Uživatelsky definované operátory. Například přidávání vektorů pomocí jednoduchého operátoru „+“.
- GNU rozšíření:
- 64bitové typy celých čísel se znaménkem a bez znaménka
- Podpora spouštění kódu v jiných programovacích jazycích
- Vkládání kódu Pascal do jiných programovacích jazyků
- Podpora procedur BitSizeOf(), ConvertFromBigEndian() atd. pro zvýšení přenositelnosti programů na jiné platformy
- Podpora pro DirSeparator, PathSeparator, GetTempDirectory učiní program přenosnějším
- PEExecute - přenosné spouštění programů pro multitaskingové systémy
- Funkce FSplit, FSearch, FExpand – seznamte se s vlastnostmi OS
- FormatTime - udává čas podle určitých pravidel
Viz také
Odkazy