Reserved words/pl: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 2 | - | ||
| 3 | 1 | Słowa zastrzeżone (kluczowe) | |
| 4 | 2 | ||
| 5 | - | ||
| 6 | - | ||
| 7 | 3 | Słowa kluczowe poszczególnych [trybów kompilatora](/wiki-category/Modes) podsumowano w następujący sposób: | |
| 8 | 4 | ||
| 9 | 5 | - [[Mode TP|Tryb Turbo Pascal]]: słowa kluczowe [[Turbo Pascal]], które są dostępne do użycia | |
| 10 | 6 | - [[Mode Delphi|Tryb Delphi]]: słowa kluczowe Turbo Pascal i Object Pascal, które są dostępne do użycia | |
| 11 | 7 | - [[Mode ObjFPC|Rozszerzony tryb Free Pascal]]: słowa kluczowe Turbo Pascal i Object Pascal, które są dostępne do użycia | |
| 12 | 8 | ||
| 13 | 9 | Sł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ą. | |
| 14 | 10 | ||
| 15 | 11 | ## Zarezerwowane słowa w Turbo Pascal | |
| 16 | 12 | ||
| 17 | 13 | W trybie Turbo Pascal występują następujące słowa kluczowe: | |
| 18 | 14 | ||
| 19 | 15 | | Słowo kluczowe | Opis | | |
| 20 | 16 | |----|----| | |
| 21 | 17 | | [[And|and]] | Operator logiczny wymagający spełnienia obu warunków, aby wynik był prawdziwy. | | |
| 22 | 18 | | [[Array|array]] | Wiele elementów o tej samej nazwie. | | |
| 23 | 19 | | [[Asm|asm]] | Początek kodu napisanego w języku asemblera. | | |
| 24 | 20 | | [[Begin|begin]] | Początek [[Block|bloku]] kodu. | | |
| 25 | 21 | | [[Break|break]] | Wyjście z instrukcji [[Case|case]]. | | |
| 26 | 22 | | [[Case|case]] | Wybór konkretnego fragment kodu do wykonania na podstawie wartości. | | |
| 27 | 23 | | [[Const|const]] | Deklaracja identyfikatora ze stałą wartością lub zmienną z zainicjowaną wartością. | | |
| 28 | 24 | | [[Constructor|constructor]] | Procedura używana do tworzenia obiektu. | | |
| 29 | 25 | | [[Continue|continue]] | Pomija iterację w pętli for i wznawia wykonywanie od początku pętli. | | |
| 30 | 26 | | [[Destructor|destructor]] | Procedura używana do zwalniania przydziału obiektu. | | |
| 31 | 27 | | [[Div|div]] | Operator dzielenia liczby całkowitej. | | |
| 32 | 28 | | [[Do|do]] | Używane do wskazania początku pętli. | | |
| 33 | 29 | | [[Downto|downto]] | Używane w pętli [[For|for]] do wskazania, że zmienna indeksu jest zmniejszana. | | |
| 34 | 30 | | [[Else|else]] | Używane w instrukcji [[If|if]] w celu zapewnienia ścieżki wykonania, gdy test if nie powiedzie się. | | |
| 35 | 31 | | [[End|end]] | Koniec bloku kodu, rekordu lub innych konstrukcji. | | |
| 36 | 32 | | [[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**. | | |
| 37 | 33 | | [[File|file]] | Zewnętrzna struktura danych, zwykle przechowywana na dysku. | | |
| 38 | 34 | | [[For|for]] | Pętla używana do zwiększania lub zmniejszania zmiennej sterującej. | | |
| 39 | 35 | | [[Function|function]] | Definiuje początek procedury, która zwraca wartość wyniku. | | |
| 40 | 36 | | [[Goto|goto]] | Służy do wyjścia z segmentu kodu i przeskoczenia do innego punktu. | | |
| 41 | 37 | | [[If|if]] | Testuje warunek i wykonuje zestaw instrukcji w oparciu o uzyskany wynik. | | |
| 42 | 38 | | [[Implementation|implementation]] | Definiuje wewnętrzne procedury w [[Unit|module]]. | | |
| 43 | 39 | | [[In|in]] | Identyfikuje elementy w kolekcji. | | |
| 44 | 40 | | [[Inline|inline]] | Kod maszynowy wstawiany bezpośrednio do procedury. | | |
| 45 | 41 | | [[Interface|interface]] | Publiczna deklaracja procedur w [[Unit|module]]. | | |
| 46 | 42 | | [[Label|label]] | Definiuje docelowy punkt skoku dla [[Goto|goto]]. | | |
| 47 | 43 | | [[Mod|mod]] | Operator używany do zwracania reszty z dzielenia liczb całkowitych. | | |
| 48 | 44 | | [[Nil|nil]] | Wartość wskaźnika wskazująca, że wskaźnik nie zawiera wartości. | | |
| 49 | 45 | | [[Not|not]] | Operator logiczny, który neguje wynik testu. | | |
| 50 | 46 | | [[Object|object]] | Definiuje konstrukcję obiektu. | | |
| 51 | 47 | | [[Of|of]] | Definiuje cechy zmiennej. | | |
| 52 | 48 | | [[On|on]] | Definiuje instrukcję obsługi wyjątków w części [[Except]] instrukcji [[Try]]. | | |
| 53 | 49 | | [[Operator|operator]] | Definiuje procedurę używaną do implementacji operatora. | | |
| 54 | 50 | | [[Or|or]] | Operator logiczny, który pozwala na użycie jednej z dwóch opcji. | | |
| 55 | 51 | | [[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). | | |
| 56 | 52 | | [[Procedure|procedure]] | Zdefiniuj początek procedury, która nie zwraca wartości wynikowej. | | |
| 57 | 53 | | [[Program|program]] | Definiuje początek aplikacji. To słowo kluczowe jest zwykle opcjonalne. | | |
| 58 | 54 | | [[Record|record]] | Grupuje serię zmiennych pod jedną nazwą. | | |
| 59 | 55 | | [[Repeat|repeat]] | Zamyka sekcję kodu w pętli aż do wystąpienia instrukcji [[Until|until]], dopóki wynik testu jest prawdziwy. | | |
| 60 | 56 | | [[Set|set]] | Pogrupuje kolekcję. | | |
| 61 | 57 | | [[Shl|shl]] | Operator do przesunięcia wartości w lewo; odpowiednik pomnożenia przez potęgę 2. | | |
| 62 | 58 | | [[Shr|shr]] | Operator do przesunięcia wartości w prawo; odpowiednik podzielenia przez potęgę 2. | | |
| 63 | 59 | | [[String|string]] | Deklaruje zmienną, która zawiera wiele znaków. | | |
| 64 | 60 | | [[Then|then]] | Wskazuje początek kodu w teście [[If|if]]. | | |
| 65 | 61 | | [[To|to]] | Wskazuje, że zmienna [[For|for]] ma być zwiększana. | | |
| 66 | 62 | | [[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**. | | |
| 67 | 63 | | [[Type|type]] | Deklaruje rodzaje rekordów lub nowe klasy zmiennych. | | |
| 68 | 64 | | [[Unit|unit]] | Oddzielnie kompilowany moduł. | | |
| 69 | 65 | | [[Until|until]] | Wskazuje na koniec testu instrukcji [[Repeat|repeat]]. | | |
| 70 | 66 | | [[Uses|uses]] | Wskazuje nazwy [[Unit|modułów]], których używa ten program lub moduł. | | |
| 71 | 67 | | [[Var|var]] | Deklaruje zmienne. | | |
| 72 | 68 | | [[While|while]] | Testuje wartość i dopóki jest prawdziwa, wykonuje sekcję kodu w petli. | | |
| 73 | 69 | | [[With|with]] | Odwołuje się do zmiennych wewnętrznych w rekordzie bez konieczności odwoływania się do samego rekordu. | | |
| 74 | 70 | | [[Xor|xor]] | Operator logiczny, który zwraca prawdę, jeśli operandy nie mają tych samych wartości logicznych. | | |
| 75 | 71 | ||
| 76 | 72 | ## Zarezerwowane słowa w Object Pascal | |
| 77 | 73 | ||
| 78 | 74 | 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.). | |
| 79 | 75 | ||
| 80 | 76 | 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 : | |
| 81 | 77 | ||
| 82 | 78 | | Słowo kluczowe | Opis | | |
| 83 | 79 | |----|----| | |
| 84 | 80 | | [[As|as]] | Konwersja obiektu do określonej klasy. | | |
| 85 | 81 | | [[Class|class]] | Deklaracja klasy. | | |
| 86 | 82 | | [[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. | | |
| 87 | 83 | | [[Dispose|dispose]] | Zwalnianie pamięci wyznaczonej przez wskaźnik. | | |
| 88 | 84 | | [[Except|except]] | Część bloku try - except - end. | | |
| 89 | 85 | | [[Exit|exit]] | Wyjście z procedury/funkcji. | | |
| 90 | 86 | | [[Exports|exports]] | Eksportuje symbole, które będą publicznie dostępne. | | |
| 91 | 87 | | [[Finalization|finalization]] | Wprowadza opcjonalną 'finalizację' części modułu. | | |
| 92 | 88 | | [[Finally|finally]] | Część bloku try - finally - end. | | |
| 93 | 89 | | [[Inherited|inherited]] | Wywołuje funkcję/procedurę z klasy nadrzędnej. | | |
| 94 | 90 | | [[Initialization|initialization]] | Wprowadza opcjonalną 'inicjalizację' części modułu. | | |
| 95 | 91 | | [[Is|is]] | Może być używany jako [[Operator|operator]] lub [[modifier|modyfikator]] | | |
| 96 | 92 | | [[Library|library]] | Używany we współdzielonej bibliotece modułu (.dll, .so itp.) zamiast słowa zastrzeżonego [[Unit|unit]]. | | |
| 97 | 93 | | [[New|new]] | Dynamiczne przydzielanie pamięć dla zmiennej. | | |
| 98 | 94 | | [[On|on]] | Wprowadza obsługę klas wyjątków w bloku try - except - end. | | |
| 99 | 95 | | [[Out|out]] | Wprowadza zmienną wyjściową w procedurze jako jej parametr. | | |
| 100 | 96 | | [[Property|property]] | Deklaracja właściwości. | | |
| 101 | 97 | | [[Raise|raise]] | Powoduje wyjątek. | | |
| 102 | 98 | | [[Self|self]] | Odniesienie do instancji klasy. | | |
| 103 | 99 | | [[Threadvar|threadvar]] | Deklaruje zmienną globalną jako lokalną wątku. | | |
| 104 | 100 | | [[Try|try]] | Część bloku try - finally - end lub try - except - end. | | |
| 105 | 101 | ||
| 106 | 102 | ## Zarezerwowane słowa w Extended Free Pascal | |
| 107 | 103 | ||
| 108 | 104 | Zarezerwowane słowa w [[Mode ObjFPC|Extended Free Pascal mode]] zawierają: | |
| 109 | 105 | ||
| 110 | 106 | - Słowa zastrzeżone [[Mode TP|trybu Turbo Pascal]] | |
| 111 | 107 | - Słowa zastrzeżone [[Mode Delphi|trybu Object Pascal mode]]\ | |
| 112 | 108 | ||
| 113 | 109 | ## Modyfikatory (dyrektywy) | |
| 114 | 110 | ||
| 115 | 111 | 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. | |
| 116 | 112 | ||
| 117 | 113 | Szczegół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). | |
| 118 | 114 | ||
| 119 | 115 | | Modyfikatory | Opis | | |
| 120 | 116 | |----|----| | |
| 121 | 117 | | [[Absolute|absolute]] | Deklaracja zmiennej pod tym samym adresem co inna zmienna. | | |
| 122 | 118 | | [[abstract]] | Nie można utworzyć instancji klasy abstrakcyjnej, można ją jedynie dziedziczyć. | | |
| 123 | 119 | | [[alias]] | Alias modyfikatora daje możliwość określenia nazwy asemblera procedury. Jest uważany za przestarzały od FPC 2.2.4. | | |
| 124 | 120 | | [[assembler]] | Czysta procedura asemblera: procedura jest definiowana przez [[Asm|asm]] … [[End|end]] | | |
| 125 | 121 | | [[cdecl]] | Modyfikator deklaracji C. | | |
| 126 | 122 | | [[Cppdecl]] | Modyfikator deklaracji C++. | | |
| 127 | 123 | | [[default]] | Aby właściwości indeksowane były używane bez określania nazwy właściwości. | | |
| 128 | 124 | | [[export]] | | | |
| 129 | 125 | | [[external]] | | | |
| 130 | 126 | | [[Forward|forward]] | Zezwól na użycie podprogramu przed jego zadeklarowaniem | | |
| 131 | 127 | | [[generic]] | Modyfikator tworzenia klas | | |
| 132 | 128 | | [[index]] | Przypisuje właściwość do jednego z indeksów właściwości tablicy. | | |
| 133 | 129 | | [[Local|local]] | Modyfikator funkcji/procedury do użytku tylko z Linuksem (dla zgodności Kylix) | | |
| 134 | 130 | | [[name]] | | | |
| 135 | 131 | | [[nostackframe]] | Wskazówka kompilatora: jeśli to możliwe, pomiń ramkę stosu. | | |
| 136 | 132 | | [[oldfpccall]] | *Przestarzałe*; konwencja wywoływania podprogramów. | | |
| 137 | 133 | | [[Override|override]] | Nadpisywanie funkcji wirtualnych. | | |
| 138 | 134 | | [[pascal]] | Użyj klasycznej konwencji wywoływania języka Pascal | | |
| 139 | 135 | | [[Private|private]] | Prywatny modyfikator dostępności, tylko członkowie klasy mają dostęp do danych/funkcji/procedur. | | |
| 140 | 136 | | [[Protected|protected]] | Chroniony modyfikator dostępności, członkowie klas i klas dziedziczonych mogą uzyskać dostęp do danych/funkcji/procedur. | | |
| 141 | 137 | | [[Public|public]] | Modyfikator dostępności publicznej, publiczny dostęp do danych/funkcji/procedur. | | |
| 142 | 138 | | [[Published|published]] | Modyfikator dostępności, opublikowane właściwości są widoczne w środowisku IDE, można je zapisać w pliku .lfm. | | |
| 143 | 139 | | [[Read|read]] | Dostęp do odczytu właściwości. | | |
| 144 | - | ||
| 140 | + | | [[Register|register]] | Definiuje konwencję wywoływania procedury: przekaż pierwsze n parametrów przez GPR. | | |
| 145 | 141 | | [[Reintroduce|reintroduce]] | Umożliwia ukrycie metody klasy nadrzędnej przez nową metodę o tej samej nazwie. | | |
| 146 | 142 | | [[Safecall|safecall]] | Konwencja wywoływania podprogramów. | | |
| 147 | 143 | | [[softfloat]] | | | |
| 148 | 144 | | [[specialize]] | Specjalizacja [[Generics|klas generycznych]]. | | |
| 149 | 145 | | [[Stdcall|stdcall]] | Konwencja wywoływania podprogramów. | | |
| 150 | 146 | | [[Virtual|virtual]] | Opisuje metodę wirtualną w programowaniu zorientowanym obiektowo. | | |
| 151 | 147 | | [[Write|write]] | Dostęp do zapisu właściwości. | | |
| 152 | 148 | | | | | |
| 153 | 149 | ||
| 154 | 150 | ## Nieobsługiwane modyfikatory Turbo Pascala | |
| 155 | 151 | ||
| 156 | 152 | > **Note:** Te modyfikatory **są obsługiwane** w cross kompilatorze [[DOS]] obecnym w wersji rozwojowej FPC | |
| 157 | 153 | ||
| 158 | 154 | 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. | |
| 159 | 155 | ||
| 160 | 156 | Ponieważ Free Pascal nie obsługuje 16-bitowego kodu (tylko 32 i 64-bitowy), te modyfikatory nie mają znaczenia w kodzie Free Pascal. | |
| 161 | 157 | ||
| 162 | 158 | | | | | |
| 163 | 159 | |----|----| | |
| 164 | 160 | | [[Far|far]] | Adresy dostępu spoza obecnego segmentu 64 KB. | | |
| 165 | 161 | | [[Near|near]] | Adresy dostępu w obecnym segmencie 64 KB. | | |
| 166 | 162 | ||
| 167 | 163 | ## Więcej funkcjonalności | |
| 168 | 164 | ||
| 169 | 165 | 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: | |
| 170 | 166 | ||
| 171 | 167 | - [[RTL]]: Run-Time Library, dostępna dla wszystkich programów FPC i Lazarus | |
| 172 | 168 | - [[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.) | |
| 173 | 169 | - FPC Packages: inne pakiety dostarczane przez FPC | |
| 174 | 170 | - Lazarus components: są to komponenty Lazarusa, które można upuścić na formularzu i często są oparte na pakietach FCL lub FPC | |
| 175 | 171 | - Lazarus utility functions: np. moduł [fileutil](http://wiki.lazarus.freepascal.org/Category:fileutil). | |
| 176 | 172 | ||
| 177 | 173 | Część z bibliotek dostarczonych przez FPC i Lazarus, dostępnych jest więcej bibliotek/komponentów: | |
| 178 | 174 | ||
| 179 | 175 | - FPC moduły dostarczane przez użytkowników: zobacz FPC na wiki | |
| 180 | 176 | - Lazarus CCR: komponenty | |
| 181 | 177 | - Kody dostarczone przez użytkowników w Internecie: zobacz repozytoria open source, takie jak SourceForge i GitHub. | |
| 182 | 178 | ||
| 183 | 179 | ## Zobacz także | |
| 184 | 180 | ||
| 185 | 181 | - [[Pascal basics|Podstawy Pascala]] | |
| 186 | 182 | ||
| 187 | 183 | --- | |
| 188 | 184 | *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).* |
