Difference between revisions of "Reserved words/pl"
(→Reserved words in Object Pascal: tłumaczenie na j. polski) |
(→Zarezerwowane słowa w Object Pascal: dodatkowe opisy słów kluczowych) |
||
Line 140: | Line 140: | ||
! Słowo kluczowe !! Opis | ! Słowo kluczowe !! Opis | ||
|- | |- | ||
− | | [[As|as]] || | + | | [[As|as]] || Konwersja obiektu do określonej klasy. |
|- | |- | ||
− | | [[Class|class]] || | + | | [[Class|class]] || Deklaracja klasy. |
|- | |- | ||
− | | [[Constref|constref]] || | + | | [[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. |
|- | |- | ||
− | | [[Dispose|dispose]] || | + | | [[Dispose|dispose]] || Zwalnianie pamięci wyznaczonej przez wskaźnik. |
|- | |- | ||
− | | [[Except|except]] || | + | | [[Except|except]] || Część bloku try - except - end. |
|- | |- | ||
− | | [[Exit|exit]] || | + | | [[Exit|exit]] || Wyjście z procedury/funkcji. |
|- | |- | ||
| [[Exports|exports]] || Eksportuje symbole, które będą publicznie dostępne. | | [[Exports|exports]] || Eksportuje symbole, które będą publicznie dostępne. | ||
Line 166: | Line 166: | ||
| [[Library|library]] || Używany we współdzielonej bibliotece modułu (.dll, .so itp.) zamiast słowa zastrzeżonego [[Unit|unit]]. | | [[Library|library]] || Używany we współdzielonej bibliotece modułu (.dll, .so itp.) zamiast słowa zastrzeżonego [[Unit|unit]]. | ||
|- | |- | ||
− | | [[New|new]] || | + | | [[New|new]] || Dynamiczne przydzielanie pamięć dla zmiennej. |
|- | |- | ||
− | | [[On|on]] || | + | | [[On|on]] || Wprowadza obsługę klas wyjątków w bloku try - except - end. |
|- | |- | ||
− | | [[Out|out]] || | + | | [[Out|out]] || Wprowadza zmienną wyjściową w procedurze jako jej parametr. |
|- | |- | ||
− | | [[Property|property]] || | + | | [[Property|property]] || Deklaracja właściwości. |
|- | |- | ||
| [[Raise|raise]] || Powoduje wyjątek. | | [[Raise|raise]] || Powoduje wyjątek. | ||
Line 180: | Line 180: | ||
| [[Threadvar|threadvar]] || Deklaruje zmienną globalną jako lokalną wątku. | | [[Threadvar|threadvar]] || Deklaruje zmienną globalną jako lokalną wątku. | ||
|- | |- | ||
− | | [[Try|try]] || Część bloku | + | | [[Try|try]] || Część bloku try - finally - end lub try - except - end. |
|} | |} | ||
Revision as of 14:26, 27 August 2020
│
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
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. |
Reserved words in Extended Free Pascal
The reserved words in Extended Free Pascal mode include:
- Turbo Pascal mode reserved words
- Object Pascal mode reserved words
Modifiers (directives)
Modifiers are not strictly reserved words; however they are used in the same way as reserved words.
See the Free Pascal Reference Guide for details.
Modifiers | Description |
---|---|
absolute | |
abstract | an abstract class cannot be instantiated, only inherited |
alias | |
assembler | pure assembler routine: routine is defined by asm … end
|
cdecl | C declaration modifier |
Cppdecl | C++ declaration modifier |
default | For indexed properties to use them without specifying the property name |
export | |
external | |
forward | Allow a subroutine to be used before it is declared |
generic | class creation modifier |
index | |
local | A function/procedure modifier only usable with Linux (for Kylix compatibility) |
name | |
nostackframe | compiler hint: omit stack frame if possible |
oldfpccall | deprecated subroutine calling convention |
override | overriding of virtual functions |
pascal | use classic pascal calling convention |
private | private accessibility modifier, only class members can access data/functions/procedures |
protected | protected accessibility modifier, accessibility modifier, class members and inherited classes can access data/functions/procedures |
public | public accessibility modifier, public access to data/functions/procedures |
published | accessibility modifier, published properties are visible in IDE ar can be written to .lfm |
read | property read access |
register | define routine’s calling convention: pass first n parameters via GPRs |
reintroduce | |
safecall | subroutine calling convention |
softfloat | |
specialize | specialization of generic classes |
stdcall | subroutine calling convention |
virtual | describes a virtual method in OO programming |
write | property write access |
Unsupported Turbo Pascal modifiers
The reason why these modifiers are not supported is that these modifiers deal with 16 bit code for DOS. In other words, these modifiers have special meaning for 16 bit programming under DOS and Windows 3.x.
As Free Pascal does not support 16 bit code (only 32 and 64 bit), these modifiers are irrelevant in Free Pascal code.
far | access addresses outside of the current 64KB segment |
near | access addresses in the current 64KB segment |
More functionality
Apart from the language features provided by the reserved words/keywords mentioned above, there is a lot of functionality available for the programmer in the various libraries:
- RTL: Run-Time Library, available for all FPC and Lazarus programs
- FCL: Free Component Library: a core set of libraries available for Lazarus programs and usually for FPC (FPC can be compiled without it, but that only happens on purpose for low-memory embedded systems etc)
- FPC Packages: other packages provided by FPC
- Lazarus components: these are Lazarus components that can be dropped on a form and often based on FCL or FPC packages
- Lazarus utility functions: e.g. the fileutil unit.
Apart from the libraries provided by FPC and Lazarus, there are more libraries/components available:
- FPC user-supplied units: see the FPC wiki
- Lazarus CCR: components
- User-supplied code on the internet: see open source repositories like SourceForge and GitHub.