Sign in Join
Wiki copytemporary

Reserved words/pl: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-<div style="font-size:1.88em;margin:0.75em 0;">
2-
31Słowa zastrzeżone (kluczowe)
42
5-</div>
6-
73Słowa kluczowe poszczególnych [trybów kompilatora](/wiki-category/Modes) podsumowano w następujący sposób:
84
95- [[Mode TP|Tryb Turbo Pascal]]: słowa kluczowe [[Turbo Pascal]], które są dostępne do użycia
106- [[Mode Delphi|Tryb Delphi]]: słowa kluczowe Turbo Pascal i Object Pascal, które są dostępne do użycia
117- [[Mode ObjFPC|Rozszerzony tryb Free Pascal]]: słowa kluczowe Turbo Pascal i Object Pascal, które są dostępne do użycia
128
139Słowa kluczowe są słowami **zastrzeżonymi** (zarezerwowanymi), tzn. nie mogą być zdefiniowane przez programistę jako [[Identifier|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ą.
1410
1511## Zarezerwowane słowa w Turbo Pascal
1612
1713W trybie Turbo Pascal występują następujące słowa kluczowe:
1814
1915| Słowo kluczowe | Opis |
2016|----|----|
2117| [[And|and]] | Operator logiczny wymagający spełnienia obu warunków, aby wynik był prawdziwy. |
2218| [[Array|array]] | Wiele elementów o tej samej nazwie. |
2319| [[Asm|asm]] | Początek kodu napisanego w języku asemblera. |
2420| [[Begin|begin]] | Początek [[Block|bloku]] kodu. |
2521| [[Break|break]] | Wyjście z instrukcji [[Case|case]]. |
2622| [[Case|case]] | Wybór konkretnego fragment kodu do wykonania na podstawie wartości. |
2723| [[Const|const]] | Deklaracja identyfikatora ze stałą wartością lub zmienną z zainicjowaną wartością. |
2824| [[Constructor|constructor]] | Procedura używana do tworzenia obiektu. |
2925| [[Continue|continue]] | Pomija iterację w pętli for i wznawia wykonywanie od początku pętli. |
3026| [[Destructor|destructor]] | Procedura używana do zwalniania przydziału obiektu. |
3127| [[Div|div]] | Operator dzielenia liczby całkowitej. |
3228| [[Do|do]] | Używane do wskazania początku pętli. |
3329| [[Downto|downto]] | Używane w pętli [[For|for]] do wskazania, że ​​zmienna indeksu jest zmniejszana. |
3430| [[Else|else]] | Używane w instrukcji [[If|if]] w celu zapewnienia ścieżki wykonania, gdy test if nie powiedzie się. |
3531| [[End|end]] | Koniec bloku kodu, rekordu lub innych konstrukcji. |
3632| [[False|false]] | Wartość logiczna wskazująca, że ​​test nie powiódł się; przeciwieństwo [[True|prawdy]]. **Od FPC 3.0.0. False nie jest już słowem kluczowym**. |
3733| [[File|file]] | Zewnętrzna struktura danych, zwykle przechowywana na dysku. |
3834| [[For|for]] | Pętla używana do zwiększania lub zmniejszania zmiennej sterującej. |
3935| [[Function|function]] | Definiuje początek procedury, która zwraca wartość wyniku. |
4036| [[Goto|goto]] | Służy do wyjścia z segmentu kodu i przeskoczenia do innego punktu. |
4137| [[If|if]] | Testuje warunek i wykonuje zestaw instrukcji w oparciu o uzyskany wynik. |
4238| [[Implementation|implementation]] | Definiuje wewnętrzne procedury w [[Unit|module]]. |
4339| [[In|in]] | Identyfikuje elementy w kolekcji. |
4440| [[Inline|inline]] | Kod maszynowy wstawiany bezpośrednio do procedury. |
4541| [[Interface|interface]] | Publiczna deklaracja procedur w [[Unit|module]]. |
4642| [[Label|label]] | Definiuje docelowy punkt skoku dla [[Goto|goto]]. |
4743| [[Mod|mod]] | Operator używany do zwracania reszty z dzielenia liczb całkowitych. |
4844| [[Nil|nil]] | Wartość wskaźnika wskazująca, że ​​wskaźnik nie zawiera wartości. |
4945| [[Not|not]] | Operator logiczny, który neguje wynik testu. |
5046| [[Object|object]] | Definiuje konstrukcję obiektu. |
5147| [[Of|of]] | Definiuje cechy zmiennej. |
5248| [[On|on]] | Definiuje instrukcję obsługi wyjątków w części [[Except]] instrukcji [[Try]]. |
5349| [[Operator|operator]] | Definiuje procedurę używaną do implementacji operatora. |
5450| [[Or|or]] | Operator logiczny, który pozwala na użycie jednej z dwóch opcji. |
5551| [[Packed|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). |
5652| [[Procedure|procedure]] | Zdefiniuj początek procedury, która nie zwraca wartości wynikowej. |
5753| [[Program|program]] | Definiuje początek aplikacji. To słowo kluczowe jest zwykle opcjonalne. |
5854| [[Record|record]] | Grupuje serię zmiennych pod jedną nazwą. |
5955| [[Repeat|repeat]] | Zamyka sekcję kodu w pętli aż do wystąpienia instrukcji [[Until|until]], dopóki wynik testu jest prawdziwy. |
6056| [[Set|set]] | Pogrupuje kolekcję. |
6157| [[Shl|shl]] | Operator do przesunięcia wartości w lewo; odpowiednik pomnożenia przez potęgę 2. |
6258| [[Shr|shr]] | Operator do przesunięcia wartości w prawo; odpowiednik podzielenia przez potęgę 2. |
6359| [[String|string]] | Deklaruje zmienną, która zawiera wiele znaków. |
6460| [[Then|then]] | Wskazuje początek kodu w teście [[If|if]]. |
6561| [[To|to]] | Wskazuje, że zmienna [[For|for]] ma być zwiększana. |
6662| [[True|true]] | Wartość logiczna wskazująca, że ​​test się powiódł; przeciwieństwo [[False|fałszu]]. **Od FPC 3.0.0. True nie jest już słowem kluczowym**. |
6763| [[Type|type]] | Deklaruje rodzaje rekordów lub nowe klasy zmiennych. |
6864| [[Unit|unit]] | Oddzielnie kompilowany moduł. |
6965| [[Until|until]] | Wskazuje na koniec testu instrukcji [[Repeat|repeat]]. |
7066| [[Uses|uses]] | Wskazuje nazwy [[Unit|modułów]], których używa ten program lub moduł. |
7167| [[Var|var]] | Deklaruje zmienne. |
7268| [[While|while]] | Testuje wartość i dopóki jest prawdziwa, wykonuje sekcję kodu w petli. |
7369| [[With|with]] | Odwołuje się do zmiennych wewnętrznych w rekordzie bez konieczności odwoływania się do samego rekordu. |
7470| [[Xor|xor]] | Operator logiczny, który zwraca prawdę, jeśli operandy nie mają tych samych wartości logicznych. |
7571
7672## Zarezerwowane słowa w Object Pascal
7773
7874Object 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.).
7975
8076Opró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 :
8177
8278| Słowo kluczowe | Opis |
8379|----|----|
8480| [[As|as]] | Konwersja obiektu do określonej klasy. |
8581| [[Class|class]] | Deklaracja klasy. |
8682| [[Constref|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. |
8783| [[Dispose|dispose]] | Zwalnianie pamięci wyznaczonej przez wskaźnik. |
8884| [[Except|except]] | Część bloku try - except - end. |
8985| [[Exit|exit]] | Wyjście z procedury/funkcji. |
9086| [[Exports|exports]] | Eksportuje symbole, które będą publicznie dostępne. |
9187| [[Finalization|finalization]] | Wprowadza opcjonalną 'finalizację' części modułu. |
9288| [[Finally|finally]] | Część bloku try - finally - end. |
9389| [[Inherited|inherited]] | Wywołuje funkcję/procedurę z klasy nadrzędnej. |
9490| [[Initialization|initialization]] | Wprowadza opcjonalną 'inicjalizację' części modułu. |
9591| [[Is|is]] | Może być używany jako [[Operator|operator]] lub [[modifier|modyfikator]] |
9692| [[Library|library]] | Używany we współdzielonej bibliotece modułu (.dll, .so itp.) zamiast słowa zastrzeżonego [[Unit|unit]]. |
9793| [[New|new]] | Dynamiczne przydzielanie pamięć dla zmiennej. |
9894| [[On|on]] | Wprowadza obsługę klas wyjątków w bloku try - except - end. |
9995| [[Out|out]] | Wprowadza zmienną wyjściową w procedurze jako jej parametr. |
10096| [[Property|property]] | Deklaracja właściwości. |
10197| [[Raise|raise]] | Powoduje wyjątek. |
10298| [[Self|self]] | Odniesienie do instancji klasy. |
10399| [[Threadvar|threadvar]] | Deklaruje zmienną globalną jako lokalną wątku. |
104100| [[Try|try]] | Część bloku try - finally - end lub try - except - end. |
105101
106102## Zarezerwowane słowa w Extended Free Pascal
107103
108104Zarezerwowane słowa w [[Mode ObjFPC|Extended Free Pascal mode]] zawierają:
109105
110106- Słowa zastrzeżone [[Mode TP|trybu Turbo Pascal]]
111107- Słowa zastrzeżone [[Mode Delphi|trybu Object Pascal mode]]\
112108
113109## Modyfikatory (dyrektywy)
114110
115111Modyfikatory nie są słowami ściśle zastrzeżonymi; jednakże są one używane w taki sam sposób jak słowa zastrzeżone.
116112
117113Szczegółowe informacje można znaleźć w [Free Pascal Reference Guide\|Przewodniku Po Programie Free Pascal](https://www.freepascal.org/docs-html/current/ref/ref.html).
118114
119115| Modyfikatory | Opis |
120116|----|----|
121117| [[Absolute|absolute]] | Deklaracja zmiennej pod tym samym adresem co inna zmienna. |
122118| [[abstract]] | Nie można utworzyć instancji klasy abstrakcyjnej, można ją jedynie dziedziczyć. |
123119| [[alias]] | Alias ​​modyfikatora daje możliwość określenia nazwy asemblera procedury. Jest uważany za przestarzały od FPC 2.2.4. |
124120| [[assembler]] | Czysta procedura asemblera: procedura jest definiowana przez [[Asm|asm]] … [[End|end]] |
125121| [[cdecl]] | Modyfikator deklaracji C. |
126122| [[Cppdecl]] | Modyfikator deklaracji C++. |
127123| [[default]] | Aby właściwości indeksowane były używane bez określania nazwy właściwości. |
128124| [[export]] | |
129125| [[external]] | |
130126| [[Forward|forward]] | Zezwól na użycie podprogramu przed jego zadeklarowaniem |
131127| [[generic]] | Modyfikator tworzenia klas |
132128| [[index]] | Przypisuje właściwość do jednego z indeksów właściwości tablicy. |
133129| [[Local|local]] | Modyfikator funkcji/procedury do użytku tylko z Linuksem (dla zgodności Kylix) |
134130| [[name]] | |
135131| [[nostackframe]] | Wskazówka kompilatora: jeśli to możliwe, pomiń ramkę stosu. |
136132| [[oldfpccall]] | *Przestarzałe*; konwencja wywoływania podprogramów. |
137133| [[Override|override]] | Nadpisywanie funkcji wirtualnych. |
138134| [[pascal]] | Użyj klasycznej konwencji wywoływania języka Pascal |
139135| [[Private|private]] | Prywatny modyfikator dostępności, tylko członkowie klasy mają dostęp do danych/funkcji/procedur. |
140136| [[Protected|protected]] | Chroniony modyfikator dostępności, członkowie klas i klas dziedziczonych mogą uzyskać dostęp do danych/funkcji/procedur. |
141137| [[Public|public]] | Modyfikator dostępności publicznej, publiczny dostęp do danych/funkcji/procedur. |
142138| [[Published|published]] | Modyfikator dostępności, opublikowane właściwości są widoczne w środowisku IDE, można je zapisać w pliku .lfm. |
143139| [[Read|read]] | Dostęp do odczytu właściwości. |
144-| [[Register|register]] | Definiuje konwencję wywoływania procedury: przekaż pierwsze n parametrów przez <abbr title="general purpose register">GPR</abbr>. |
140+| [[Register|register]] | Definiuje konwencję wywoływania procedury: przekaż pierwsze n parametrów przez GPR. |
145141| [[Reintroduce|reintroduce]] | Umożliwia ukrycie metody klasy nadrzędnej przez nową metodę o tej samej nazwie. |
146142| [[Safecall|safecall]] | Konwencja wywoływania podprogramów. |
147143| [[softfloat]] | |
148144| [[specialize]] | Specjalizacja [[Generics|klas generycznych]]. |
149145| [[Stdcall|stdcall]] | Konwencja wywoływania podprogramów. |
150146| [[Virtual|virtual]] | Opisuje metodę wirtualną w programowaniu zorientowanym obiektowo. |
151147| [[Write|write]] | Dostęp do zapisu właściwości. |
152148| | |
153149
154150## Nieobsługiwane modyfikatory Turbo Pascala
155151
156152> **Note:** Te modyfikatory **są obsługiwane** w cross kompilatorze [[DOS]] obecnym w wersji rozwojowej FPC
157153
158154Powodem, 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.
159155
160156Ponieważ Free Pascal nie obsługuje 16-bitowego kodu (tylko 32 i 64-bitowy), te modyfikatory nie mają znaczenia w kodzie Free Pascal.
161157
162158| | |
163159|----|----|
164160| [[Far|far]] | Adresy dostępu spoza obecnego segmentu 64 KB. |
165161| [[Near|near]] | Adresy dostępu w obecnym segmencie 64 KB. |
166162
167163## Więcej funkcjonalności
168164
169165Oprócz funkcji językowych zapewnianych przez wspomniane powyżej słowa zastrzeżone/kluczowe, programista ma wiele funkcji dostępnych w różnych bibliotekach:
170166
171167- [[RTL]]: Run-Time Library, dostępna dla wszystkich programów FPC i Lazarus
172168- [[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.)
173169- FPC Packages: inne pakiety dostarczane przez FPC
174170- Lazarus components: są to komponenty Lazarusa, które można upuścić na formularzu i często są oparte na pakietach FCL lub FPC
175171- Lazarus utility functions: np. moduł [fileutil](http://wiki.lazarus.freepascal.org/Category:fileutil).
176172
177173Część z bibliotek dostarczonych przez FPC i Lazarus, dostępnych jest więcej bibliotek/komponentów:
178174
179175- FPC moduły dostarczane przez użytkowników: zobacz FPC na wiki
180176- Lazarus CCR: komponenty
181177- Kody dostarczone przez użytkowników w Internecie: zobacz repozytoria open source, takie jak SourceForge i GitHub.
182178
183179## Zobacz także
184180
185181- [[Pascal basics|Podstawy Pascala]]
186182
187183---
188184*From the Free Pascal wiki, page "Reserved words/pl", as it stood on 2021-11-11 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history