Reserved words/pl
│
Deutsch (de) │
English (en) │
français (fr) │
polski (pl) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Słowa kluczowe poszczególnych trybów kompilatora podsumowano w następujący sposób:
- Tryb Turbo Pascal: słowa kluczowe Turbo Pascal, które są dostępne do użycia
- Tryb Delphi: słowa kluczowe Turbo Pascal i Object Pascal, które są dostępne do użycia
- Rozszerzony tryb Free Pascal: słowa kluczowe Turbo Pascal i Object Pascal, które są dostępne do użycia
Słowa kluczowe są słowami zastrzeżonymi (zarezerwowanymi), tzn. nie mogą być zdefiniowane przez programistę jako identyfikatory. To znaczy, że nie możesz tych słów używać do nazywania swoich zmiennych, stałych, nazw funkcji i procedur, nazw klas itd. W Pascalu, w kodzie źródłowym, słowa kluczowe często są wyróżniane wytłuszczoną czcionką.
Zarezerwowane słowa w Turbo Pascal
W trybie Turbo Pascal występują następujące słowa kluczowe:
Słowo kluczowe | Opis |
---|---|
and | Operator logiczny wymagający spełnienia obu warunków, aby wynik był prawdziwy. |
array | Wiele elementów o tej samej nazwie. |
asm | Początek kodu napisanego w języku asemblera. |
begin | Początek bloku kodu. |
break | Wyjście z instrukcji case. |
case | Wybór konkretnego fragment kodu do wykonania na podstawie wartości. |
const | Deklaracja identyfikatora ze stałą wartością lub zmienną z zainicjowaną wartością. |
constructor | Procedura używana do tworzenia obiektu. |
continue | Pomija iterację w pętli for i wznawia wykonywanie od początku pętli. |
destructor | Procedura używana do zwalniania przydziału obiektu. |
div | Operator dzielenia liczby całkowitej. |
do | Używane do wskazania początku pętli. |
downto | Używane w pętli for do wskazania, że zmienna indeksu jest zmniejszana. |
else | Używane w instrukcji if w celu zapewnienia ścieżki wykonania, gdy test if nie powiedzie się. |
end | Koniec bloku kodu, rekordu lub innych konstrukcji. |
false | Wartość logiczna wskazująca, że test nie powiódł się; przeciwieństwo prawdy. Od FPC 3.0.0. False nie jest już słowem kluczowym. |
file | Zewnętrzna struktura danych, zwykle przechowywana na dysku. |
for | Pętla używana do zwiększania lub zmniejszania zmiennej sterującej. |
function | Definiuje początek procedury, która zwraca wartość wyniku. |
goto | Służy do wyjścia z segmentu kodu i przeskoczenia do innego punktu. |
if | Testuje warunek i wykonuje zestaw instrukcji w oparciu o uzyskany wynik. |
implementation | Definiuje wewnętrzne procedury w module. |
in | Identyfikuje elementy w kolekcji. |
inline | Kod maszynowy wstawiany bezpośrednio do procedury. |
interface | Publiczna deklaracja procedur w module. |
label | Definiuje docelowy punkt skoku dla goto. |
mod | Operator używany do zwracania reszty z dzielenia liczb całkowitych. |
nil | Wartość wskaźnika wskazująca, że wskaźnik nie zawiera wartości. |
not | Operator logiczny, który neguje wynik testu. |
object | Definiuje konstrukcję obiektu. |
of | Definiuje cechy zmiennej. |
on | Definiuje instrukcję obsługi wyjątków w części Except instrukcji Try. |
operator | Definiuje procedurę używaną do implementacji operatora. |
or | Operator logiczny, który pozwala na użycie jednej z dwóch opcji. |
packed | Wskazuje, że elementy tablicy mają zajmować mniej miejsca (to słowo kluczowe służy głównie do zapewnienia zgodności ze starszymi programami, ponieważ pakowanie elementów tablicy jest zwykle automatyczne). |
procedure | Zdefiniuj początek procedury, która nie zwraca wartości wynikowej. |
program | Definiuje początek aplikacji. To słowo kluczowe jest zwykle opcjonalne. |
record | Grupuje serię zmiennych pod jedną nazwą. |
repeat | Zamyka sekcję kodu w pętli aż do wystąpienia instrukcji until, dopóki wynik testu jest prawdziwy. |
set | Pogrupuje kolekcję. |
shl | Operator do przesunięcia wartości w lewo; odpowiednik pomnożenia przez potęgę 2. |
shr | Operator do przesunięcia wartości w prawo; odpowiednik podzielenia przez potęgę 2. |
string | Deklaruje zmienną, która zawiera wiele znaków. |
then | Wskazuje początek kodu w teście if. |
to | Wskazuje, że zmienna for ma być zwiększana. |
true | Wartość logiczna wskazująca, że test się powiódł; przeciwieństwo fałszu. Od FPC 3.0.0. True nie jest już słowem kluczowym. |
type | Deklaruje rodzaje rekordów lub nowe klasy zmiennych. |
unit | Oddzielnie kompilowany moduł. |
until | Wskazuje na koniec testu instrukcji repeat. |
uses | Wskazuje nazwy modułów, których używa ten program lub moduł. |
var | Deklaruje zmienne. |
while | Testuje wartość i dopóki jest prawdziwa, wykonuje sekcję kodu w petli. |
with | Odwołuje się do zmiennych wewnętrznych w rekordzie bez konieczności odwoływania się do samego rekordu. |
xor | Operator logiczny, który zwraca prawdę, jeśli operandy nie mają tych samych wartości logicznych. |
Zarezerwowane słowa w Object Pascal
Object Pascal rozszerza język (Turbo) Pascal zarówno o obsługę łatwiejszego radzenia sobie z obiektami (orientacja obiektowa), jak i inne nowsze/bardziej zaawansowane koncepcje (jak np. wątki itp.).
Oprócz tego do słów zastrzeżonych w Turbo Pascalu, dostępne są również następujące słowa, zastrzeżone w trybie Delphi :
Słowo kluczowe | Opis |
---|---|
as | Konwersja obiektu do określonej klasy. |
class | Deklaracja klasy. |
constref | Kwalifikator parametru procedury/funkcji, który działa jak kwalifikator parametru const, ale wymusza przekazywanie parametru przez odwołanie. Dostępny od wersji 2.6 Free Pascala. |
dispose | Zwalnianie pamięci wyznaczonej przez wskaźnik. |
except | Część bloku try - except - end. |
exit | Wyjście z procedury/funkcji. |
exports | Eksportuje symbole, które będą publicznie dostępne. |
finalization | Wprowadza opcjonalną 'finalizację' części modułu. |
finally | Część bloku try - finally - end. |
inherited | Wywołuje funkcję/procedurę z klasy nadrzędnej. |
initialization | Wprowadza opcjonalną 'inicjalizację' części modułu. |
is | Może być używany jako operator lub modyfikator |
library | Używany we współdzielonej bibliotece modułu (.dll, .so itp.) zamiast słowa zastrzeżonego unit. |
new | Dynamiczne przydzielanie pamięć dla zmiennej. |
on | Wprowadza obsługę klas wyjątków w bloku try - except - end. |
out | Wprowadza zmienną wyjściową w procedurze jako jej parametr. |
property | Deklaracja właściwości. |
raise | Powoduje wyjątek. |
self | Odniesienie do instancji klasy. |
threadvar | Deklaruje zmienną globalną jako lokalną wątku. |
try | Część bloku try - finally - end lub try - except - end. |
Zarezerwowane słowa w Extended Free Pascal
Zarezerwowane słowa w Extended Free Pascal mode zawierają:
- Słowa zastrzeżone trybu Turbo Pascal
- Słowa zastrzeżone trybu Object Pascal mode
Modyfikatory (dyrektywy)
Modyfikatory nie są słowami ściśle zastrzeżonymi; jednakże są one używane w taki sam sposób jak słowa zastrzeżone.
Szczegółowe informacje można znaleźć w Free Pascal Reference Guide|Przewodniku Po Programie Free Pascal.
Modyfikatory | Opis |
---|---|
absolute | Deklaracja zmiennej pod tym samym adresem co inna zmienna. |
abstract | Nie można utworzyć instancji klasy abstrakcyjnej, można ją jedynie dziedziczyć. |
alias | Alias modyfikatora daje możliwość określenia nazwy asemblera procedury. Jest uważany za przestarzały od FPC 2.2.4. |
assembler | Czysta procedura asemblera: procedura jest definiowana przez asm … end
|
cdecl | Modyfikator deklaracji C. |
Cppdecl | Modyfikator deklaracji C++. |
default | Aby właściwości indeksowane były używane bez określania nazwy właściwości. |
export | |
external | |
forward | Zezwól na użycie podprogramu przed jego zadeklarowaniem |
generic | Modyfikator tworzenia klas |
index | Przypisuje właściwość do jednego z indeksów właściwości tablicy. |
local | Modyfikator funkcji/procedury do użytku tylko z Linuksem (dla zgodności Kylix) |
name | |
nostackframe | Wskazówka kompilatora: jeśli to możliwe, pomiń ramkę stosu. |
oldfpccall | Przestarzałe; konwencja wywoływania podprogramów. |
override | Nadpisywanie funkcji wirtualnych. |
pascal | Użyj klasycznej konwencji wywoływania języka Pascal |
private | Prywatny modyfikator dostępności, tylko członkowie klasy mają dostęp do danych/funkcji/procedur. |
protected | Chroniony modyfikator dostępności, członkowie klas i klas dziedziczonych mogą uzyskać dostęp do danych/funkcji/procedur. |
public | Modyfikator dostępności publicznej, publiczny dostęp do danych/funkcji/procedur. |
published | Modyfikator dostępności, opublikowane właściwości są widoczne w środowisku IDE, można je zapisać w pliku .lfm. |
read | Dostęp do odczytu właściwości. |
register | Definiuje konwencję wywoływania procedury: przekaż pierwsze n parametrów przez GPR. |
reintroduce | Umożliwia ukrycie metody klasy nadrzędnej przez nową metodę o tej samej nazwie. |
safecall | Konwencja wywoływania podprogramów. |
softfloat | |
specialize | Specjalizacja klas generycznych. |
stdcall | Konwencja wywoływania podprogramów. |
virtual | Opisuje metodę wirtualną w programowaniu zorientowanym obiektowo. |
write | Dostęp do zapisu właściwości. |
Nieobsługiwane modyfikatory Turbo Pascala
Powodem, dla którego te modyfikatory nie są obsługiwane, jest to, że te modyfikatory obsługują 16-bitowy kod dla DOS. Innymi słowy, te modyfikatory mają specjalne znaczenie dla programowania 16-bitowego pod DOS i Windows 3.x.
Ponieważ Free Pascal nie obsługuje 16-bitowego kodu (tylko 32 i 64-bitowy), te modyfikatory nie mają znaczenia w kodzie Free Pascal.
far | Adresy dostępu spoza obecnego segmentu 64 KB. |
near | Adresy dostępu w obecnym segmencie 64 KB. |
Więcej funkcjonalności
Oprócz funkcji językowych zapewnianych przez wspomniane powyżej słowa zastrzeżone/kluczowe, programista ma wiele funkcji dostępnych w różnych bibliotekach:
- RTL: Run-Time Library, dostępna dla wszystkich programów FPC i Lazarus
- FCL: Free Component Library: podstawowy zestaw bibliotek dostępnych dla programów Lazarus i zwykle dla FPC (FPC można skompilować bez niego, ale robi się to celowo tylko dla systemów osadzonych o małej ilości pamięci itp.)
- FPC Packages: inne pakiety dostarczane przez FPC
- Lazarus components: są to komponenty Lazarusa, które można upuścić na formularzu i często są oparte na pakietach FCL lub FPC
- Lazarus utility functions: np. moduł fileutil.
Część z bibliotek dostarczonych przez FPC i Lazarus, dostępnych jest więcej bibliotek/komponentów:
- FPC moduły dostarczane przez użytkowników: zobacz FPC na wiki
- Lazarus CCR: komponenty
- Kody dostarczone przez użytkowników w Internecie: zobacz repozytoria open source, takie jak SourceForge i GitHub.