Turbo Pascal
 
Szukanie zaawansowane
   
 
Home Rejestracja FAQ Użytkownicy Grupy Galerie  
 
 


Forum Turbo Pascal Strona Główna Propozycje Dla szukających Turbo Pascala [download]
Wyświetl posty z ostatnich:   
       
Napisz nowy temat  Odpowiedz do tematu

Nie 16:45, 05 Mar 2006
Autor Wiadomość
istredd`
Średnio zaawansowany



Dołączył: 14 Lut 2006
Posty: 37
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Kraków

Temat postu: Dla szukających Turbo Pascala [download]

Turbo Pascal jak już wspomniałem przedtem jest odpłatny. Jest jednak o wiele lepsza alternatywa : Free Pascal Compiler (FPC). Najpierw lista zmian [zapożyczona ze stref free pascala]:

1. Większa długość słowa

* Kompilator generuje kod 32 lub 64 bitowy. Procesory starsze od 386 nie są obsługiwane
* Typ integer ma długość równą słowu maszyny (32 lub 64 bity, zamiast 16). 16-bitowy integer nazywa się smallint
* funkcja Ofs() zwraca longint zamiast word
* Słowa kluczowe FAR, NEAR są ignorowane. W 32 bitowym kompilatorze nie mają sensu.
* Brak modułu 'overlay'. Nie jest potrzebny, bo w 32-bitowym środowisku dzielenie kodu na małe części nie jest potrzebne.
* Zbiory są zawsze 4 (do 32 elementów) lub 32 bajtowe (do 256 elementów); m. in. rzutowanie typów może nie działać.
* Rekordy są zawsze wyrównywane do granicy słowa (word, 16-bit); aby uzyskać wyrównywanie jak w TP trzeba użyć 'packed record' lub dyrektywy {$PACKRECORDS 1}. Wyłączenie wyrównywania spowolni dostęp do danych, może nie działać na procesorach innych niż x86
* Moduły kompilowane pod TP trzeba przekompilować (nie są binarnie zgodne).

2. Zaszłości systemowe

* INTERRUPT działa tylko pod DOS.
* Aby używać tablicy PORT, należy dodać moduł Ports - "uses Ports;", dostępny tylko dla Dos/Go32v2 i Linuksa.
* Dostęp do pamięci przez tablicę MEM[seg:ofs] (analogicznie MemW i MemL) jest możliwy tylko pod DOS/Go32v2.

3. Składnia - podprogramy

* Procedura exit może mieć parametr - zwracany wynik funkcji, np. exit(a+b)
* Nazwa funkcji wewnątrz jej samej uważana jest za odwołanie do zmiennej przechowującej wynik, a nie wywołanie rekurencyjne. Aby wywołać funkcję rekurencyjnie należy dodać po nazwie nawiasy, np. Fibonacci().
* Przy deklaracjach forward w definicji funkcji trzeba powtórzyć pełną listę parametrów, ponieważ dozwolone jest istnienie kilku różnych funkcji o tej samej nazwie, a innych parametrach (przeciążanie funkcji)

4. Obliczanie wyrażeń

* W FPC wyrażenie logiczne obliczane jest tylko do momentu, w którym jego wartość jest znana. W poniższym przykładzie funkcja typu logicznego Func nigdy nie będzie wywołana, ponieważ z faktu, że B ma wartość false wiadomo już, że A też musi mieć wartość false. Może to mieć znaczenie, gdy wywoływane funkcje powodują efekty uboczne.
W poniższym przykładzie funkcja Func nigdy nie zostanie wywołana:
* Kolejność obliczania wyrażeń może być inna niż w TP. Np. w przypisaniu: nie ma gwarancji, że g(2) będzie wywołana przed f(3), co może mieć znaczenie w przypadku istnienia efektów ubocznych funkcji.

5. Asembler

* Większość kodu asamblera trzeba przepisać ze względu na tryb 32 lub 64 bitowy
* Domyślnie kompilator używa składni asemblera AT&T, (jak asembler GNU). Typ składni można jednak zmienić na Intel (jak w TP) dodając parametr kompilatora -Rintel lub dyrektywę {$asmmode intel} w źródle programu.
* INLINE jest używane do kodu pascala zamiast maszynowego.

6. Obiekty

* Destruktor może być tylko jeden i nie może mieć parametrów.
* Funkcjonują równolegle dwa modele obiektów:
o ze słowam kluczowym OBJECT (TP)
o ze słowam kluczowym CLASS (DELPHI)
Bardziej polecany jest ten drugi, oparty jest na nim Lazarus i większość bibliotek FPC.

7. Biblioteki

* Free Vision, odpowiednik Turbo Vision, nie jest gotowy (problemy patentowe).
* Plik jest otwierany tylko do zapisu (z użyciem fmOutput) kiedy otwieramy go przez Rewrite. Aby móc z niego odczytywać, należy użyć Reset.

8. Inne

* Aby przypisać procedurę do zmiennej trzeba użyć operatora @
* Nie można powtarzać tych samych etykiet case. Był to błąd w TP, utrzymany w późnieszych wersjach ze względu na kompatybilność
* Zagnieżdżanie komentarzy dozwolone, ale kompilator pokazuje ostrzeżenie
* Dodano nowe słowa kluczowe, które mogą się pokrywać z identyfikatorami używanymi w TP.
* Parametry linii poleceń kompilatora są inne.
* Nie wszystkie dyrektywy kompilatora z TP są obsługiwane, dodano także dużo nowych

Poza tym Free Pascal kompiluje kod Delphi, obsługuje np. procedury przeciążone i inne. Jeżeli ktoś chce, odsyłam poniżej do strony z plikami. Ciekawostką jest to, że FPC jest skompilowany nie tylko na Windows, ale także na: Linux, MacOs, BeOS a nawet niektóre Pody :).
[link widoczny dla zalogowanych]


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  
Sob 11:32, 17 Mar 2007
Autor Wiadomość
Names8
Początkujący



Dołączył: 17 Mar 2007
Posty: 2
Przeczytał: 0 tematów

Ostrzeżeń: 0/3

Temat postu:

Catherine Zeta Jone Throatjob!
[link widoczny dla zalogowanych]


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  
Napisz nowy temat  Odpowiedz do tematu

 
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


      Do góry  

Strona 1 z 1
Skocz do:  
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Avalanche style by What Is Real © 2004
             
Regulamin