Difference between revisions of "Reserved words/ru"

From Free Pascal wiki
Jump to navigationJump to search
 
(7 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
__TOC__
 
__TOC__
 
<br>
 
<br>
Зарезервированные слова отдельных <!---[[Compiler Mode|compiler modes]]--->[[:Category:Modes|режимов компилятора]] объединены следующим образом:
+
Зарезервированные слова отдельных <!---[[Compiler Mode|compiler modes]]--->[[:Category:Modes/ru|режимов компилятора]] объединены следующим образом:
  
* Режим Turbo Pascal: для использования доступны зарезервированные слова Turbo Pascal.
+
* [[Mode_TP/ru|Режим Turbo Pascal]]: для использования доступны зарезервированные слова Turbo Pascal.
* Режим Delphi: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal.
+
* [[Mode_Delphi/ru|Режим Delphi]]: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal.
* Режим Free Pascal: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal.
+
* [[Mode_ObjFPC/ru|Режим Free Pascal]]: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal.
  
  
Line 15: Line 15:
 
{| class = "wikitable"
 
{| class = "wikitable"
 
|-
 
|-
! keyword !! description
+
! ключевое слово !! описание
 
|-
 
|-
| [[And|and]] || Boolean operator requiring both conditions are true for the result to be true
+
| [[And/ru|and]] || логический оператор, требующий, чтобы оба операнда были равны true для того. чтобы результат был равен true
 
|-
 
|-
| [[Array|array]] || multiple elements with the same name
+
| [[Array/ru|array]] || множество элементов с одинаковым именем
 
|-
 
|-
| [[Asm|asm]] || start of code written in assembly language
+
| [[Asm/ru|asm]] || начало кода, написанного на языке ассемблера
 
|-
 
|-
| [[Begin|begin]] || start of a [[Block|block]] of code
+
| [[Begin/ru|begin]] || начало [[Block/ru|блока]] кода
 
|-
 
|-
| [[Break|break]] || exit a  [[Case|case]] statement
+
| [[Break/ru|break]] || выход из условия [[Case/ru|case]]
 
|-
 
|-
| [[Case|case]] || select a particular segement of code to execute based on a value
+
| [[Case/ru|case]] || выбирает определенный сегмент кода для выполнения в зависимости от значения
 
|-
 
|-
| [[Const|const]] || declare an identifier with a fixed value, or a variable with an initialized value
+
| [[Const/ru|const]] || объявляет идентификатор с неизменяемым значением или переменную с инициализированным значением
 
|-
 
|-
| [[Constructor|constructor]] || routine used to create an object
+
| [[Constructor/ru|constructor]] || процедура, используемая для создания объекта
 
|-
 
|-
| [[Continue|continue]] || skips an iteration in a for-loop and restart execution at the beginning of the loop
+
| [[Continue/ru|continue]] || пропускает инструкции в цикле '''for''' и возобновляет выполнение с начала цикла
 
|-
 
|-
| [[Destructor|destructor]] || routine used to deallocate an object
+
| [[Destructor/ru|destructor]] || процедура, используемая для "уничтожения" объекта
 
|-
 
|-
| [[Div|div]] || integer divide operator
+
| [[Div/ru|div]] || оператор целочисленного деления
 
|-
 
|-
| [[Do|do]] || used to indicate start of a loop
+
| [[Do/ru|do]] || используется для указания начала цикла
 
|-
 
|-
| [[Downto|downto]] || used in a [[For|for]] loop to indicate the index variable is decremented
+
| [[Downto/ru|downto]] || используется в цикле [[For/ru|for]] для указания декремента (уменьшения) переменной-счетчика
 
|-
 
|-
| [[Else|else]] || used in [[If|if]] statement to provide an execution path when the if test fails
+
| [[Else/ru|else]] || используется в условной конструкции [[If/ru|if]] для выполнения альтернативной ветви, когда ветвь '''if''' не выполняется
 
|-
 
|-
| [[End|end]] || end of a block of code, a record or certain other constructs]
+
| [[End/ru|end]] || конец блока кода, записи или некоторых других конструкций
 
|-
 
|-
| [[False|false]] || boolean value indicating a test failed; opposite of [[True|true]]
+
| [[False/ru|false]] || логическое значение, означающее что условие не выполняется; противоположно значению [[True/ru|true]]
 
|-
 
|-
| [[File|file]] || external data structure, typically stored on disc
+
| [[File/ru|file]] || внешняя структура данных, обычно хранящаяся на диске
 
|-
 
|-
| [[For|for]] || loop used to increment or decrement a control variable
+
| [[For/ru|for]] || цикл с использованием увеличения или уменьшения управляющей переменной
 
|-
 
|-
| [[Function|function]] || define start of a routine that returns a result value
+
| [[Function/ru|function]] || объявляет начало процедуры, которая возвращает значение результата
 
|-
 
|-
| [[Goto|goto]] || used to exit a segment of code and jump to another point
+
| [[Goto/ru|goto]] || осуществляет выход из сегмента кода и переходит в другое место
 
|-
 
|-
| [[If|if]] || test a condition and perform a set of instructions based on the result
+
| [[If/ru|if]] || проверяет условие и по результату сравнения выполняет набор инструкций
 
|-
 
|-
| [[Implementation|implementation]] || define the internal routines in [[Unit|unit]]
+
| [[Implementation/ru|implementation]] || определяет внутренние процедуры в [[Unit/ru|модуле]]
 
|-
 
|-
| [[In|in]] || identifies elements in a collection
+
| [[In/ru|in]] || определяет элементы в коллекции
 
|-
 
|-
| [[inline|inline]] || machine code inserted directly into a routine
+
| [[inline/ru|inline]] || непосредственно встраивает машинный код в процедуру
 
|-
 
|-
| [[Interface|interface]] || public declarations of routines in a [[Unit|unit]]
+
| [[Interface/ru|interface]] || глобальные объявления процедур в [[Unit/ru|unit]]
 
|-
 
|-
| [[Label|label]] || defines the target jump point for a [[Goto|goto]]
+
| [[Label/ru|label]] || определяет точку перехода для оператора [[Goto/ru|goto]]
 
|-
 
|-
| [[Mod|mod]] || operator used to return the remainder of an integer division
+
| [[Mod/ru|mod]] || оператор, возвращающий остаток целочисленного деления
 
|-
 
|-
| [[Nil|nil]] || pointer value indicating the pointer does not contain a value
+
| [[Nil/ru|nil]] || значение указателя, означающее, что указатель ни на что не ссылается
 
|-
 
|-
| [[Not|not]] || boolean operator that negates the result of a test
+
| [[Not/ru|not]] || логический оператор, который инвертирует значение результата проверки
 
|-
 
|-
| [[Object|object]] || defines an object construct
+
| [[Object/ru|object]] || определяет конструкцию типа "объект"
 
|-
 
|-
| [[Of|of]] || defines the characteristics of a variable
+
| [[Of/ru|of]] || определяет характеристики переменной
 
|-
 
|-
| [[On|on]] ||
+
| [[On/ru|on]] ||
 
|-
 
|-
| [[Operator|operator]] || defines a routine used to implement an operator
+
| [[Operator/ru|operator]] || определяет процедуру, использующуюся для реализации оператора
 
|-
 
|-
| [[Or|or]] || boolean operator which allows either of two choices to be used
+
| [[Or/ru|or]] || логический оператор, который позволяет использовать любой из двух вариантов
 
|-
 
|-
| [[Packed|packed]] || indicates the elements of an array are to use less space (this keyword is primarily for compatibility with older programs as packing of array elements is generally automatic)
+
| [[Packed/ru|packed]] || указывает, что элементы в массиве используют меньше памяти (данное ключевое слово необходимо, прежде всего, для совместимости с устаревшими программами, когда элементы массива упаковывались обычно автоматически)
 
|-
 
|-
| [[Procedure|procedure]] || define start of a routine that does not return a result value
+
| [[Procedure/ru|procedure]] || определяет начало процедуры, которая не возвращает значение результата
 
|-
 
|-
| [[Program|program]] || defines start of an application. This keyword is usually optional.
+
| [[Program/ru|program]] || определяет начало приложения. Данное ключевое слово обычно является необязательным
 
|-
 
|-
| [[Record|record]] || group a series of variables under a single name
+
| [[Record/ru|record]] || набор разнотипных переменных, объединенных под одним именем
 
|-
 
|-
| [[Repeat|repeat]] || loop through a section of code through an [[Until|until]] statement as long as the result of the test is true
+
| [[Repeat/ru|repeat]] || цикл, представляющий секцию кода до условной инструкции [[Until/ru|until]], выполняющийся до тех пор, пока результат сравнения равен true
 
|-
 
|-
| [[Set|set]] || group a collection
+
| [[Set/ru|set]] || набор значений
 
|-
 
|-
| [[Shl|shl]] || operator to shift a value to the left; equivalent to multiplying by a power of 2
+
| [[Shl/ru|shl]] || оператор сдвига значения влево; эквивалентен умножению на степень 2
 
|-
 
|-
| [[Shr|shr]] || operator to shift a value to the right; equivalent to dividing by a power of 2
+
| [[Shr/ru|shr]] || оператор сдвига значения вправо; эквивалентен делению на степень 2
 
|-
 
|-
| [[String|string]] || declares a variable that contains multiple characters
+
| [[String/ru|string]] || объявляет переменную, содержащую множество символов
 
|-
 
|-
| [[Then|then]] || indicates start of code in an [[If|if]] test
+
| [[Then/ru|then]] || указывает начало кода в условии сравнения [[If/ru|if]]
 
|-
 
|-
| [[To|to]] || indicates a [[For|for]] variable is to be incremented
+
| [[To/ru|to]] || используется в цикле [[For/ru|for]] для указания инкремента (увеличения) переменной-счетчика
 
|-
 
|-
| [[True|true]] || boolean value indicating a test succeeded; opposite of [[false]]
+
| [[True/ru|true]] || логическое значение, указывающее что сравнение выполняется; противоположно значению [[False/ru|false]]
 
|-
 
|-
| [[Type|type]] || declares kinds of records or new classes of variables
+
| [[Type/ru|type]] || объявляет типы записей или новых классов переменных
 
|-
 
|-
| [[Unit|unit]] || separately compiled module
+
| [[Unit/ru|unit]] || раздельно компилируемые модули
 
|-
 
|-
| [[Until|until]] || indicates end test of a  [[Repeat|repeat]] statement
+
| [[Until/ru|until]] || указывает окончание блока проверки в цикле [[Repeat/ru|repeat]]
 
|-
 
|-
| [[Uses|uses]] || names [[Unit|unit]]s this program or unit refers to
+
| [[Uses/ru|uses]] || перечисление названий [[Unit/ru|модулей]] в текущей программе или модулей, на которые есть ссылки
 
|-
 
|-
| [[Var|var]] || declare variables
+
| [[Var/ru|var]] || объявление переменных
 
|-
 
|-
| [[While|while]] || test a value and if true, loop through a section of code
+
| [[While/ru|while]] || проверяет значение и, если оно равно [[True/ru|true]], выполняет инструкции цикла
 
|-
 
|-
 
| [[With|with]] || reference the internal variables within a record without having to refer to the record itself
 
| [[With|with]] || reference the internal variables within a record without having to refer to the record itself
 
|-
 
|-
| [[Xor|xor]] || boolean operator used to invert an [[Or|or]] test
+
| [[Xor/ru|xor]] || логический оператор, являющийся исключающим [[Or/ru|ИЛИ]]
 
|}
 
|}
  
==Reserved words in Object Pascal==
+
==Зарезервированные слова в Object Pascal==
 
Object Pascal extends the (Turbo) Pascal language with both support for dealing more easily with objects (object orientation) as well as other newer/more advanced concepts (threads, etc).<br>
 
Object Pascal extends the (Turbo) Pascal language with both support for dealing more easily with objects (object orientation) as well as other newer/more advanced concepts (threads, etc).<br>
 
In addition to the reserved words in Turbo Pascal, the following reserved words are available in Delphi mode as well:<br>
 
In addition to the reserved words in Turbo Pascal, the following reserved words are available in Delphi mode as well:<br>
Line 151: Line 151:
 
<br>
 
<br>
  
==Reserved words in Free Pascal==
+
==Зарезервированные слова в Free Pascal==
The reserved words in Free Pascal mode include:
+
Зарезервированные слова в режиме Free Pascal включают:
* Turbo Pascal mode reserved words
+
* зарезервированные слова [[Mode TP/ru|режима Turbo Pascal]]
* Object Pascal mode reserved words<br>
+
* зарезервированные слова [[Mode Delphi/ru|режима Object Pascal]]<br>
 
<br>
 
<br>
  
==Modifiers (directives)==
+
==Модификаторы (директивы)==
The list below is a list of modifiers<br>
+
Ниже представлен список модификаторов. Модификаторы не являются строго зарезервированными словами, однако они используются так же, как зарезервированные слова.<br>
Modifiers are not strictly reserved words; however they are used in the same way as reserved words.<br>
+
Подробнее см. в руководстве по Free Pascal.<br>
See the Free Pascal manual for details.<br>
+
[[Absolute/ru|absolute]]<br>
[[absolute|absolute]]<br>
 
 
[[abstract|abstract]]<br>
 
[[abstract|abstract]]<br>
 
[[alias|alias]]<br>
 
[[alias|alias]]<br>
 
[[assembler|assembler]]<br>
 
[[assembler|assembler]]<br>
 
[[cdecl|cdecl]]<br>
 
[[cdecl|cdecl]]<br>
[[cppdecl|cppdecl]]<br>
+
[[Cppdecl|cppdecl]]<br>
 
[[default|default]]<br>
 
[[default|default]]<br>
 
[[export|export]]<br>
 
[[export|export]]<br>
Line 183: Line 182:
 
[[published|published]]<br>
 
[[published|published]]<br>
 
[[read|read]]<br>
 
[[read|read]]<br>
[[register|register]]<br>
+
[[Register/ru|register]]<br>
[[reintroduce|reintroduce]]<br>
+
[[Reintroduce|reintroduce]]<br>
 
[[safecall|safecall]]<br>
 
[[safecall|safecall]]<br>
 
[[softfloat|softfloat]]<br>
 
[[softfloat|softfloat]]<br>
Line 192: Line 191:
 
<br>
 
<br>
  
==Unsupported Turbo Pascal modifiers==
+
==Неподдерживаемые модификаторы Turbo Pascal==
 
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.
 
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.
  

Latest revision as of 07:23, 4 April 2020

Deutsch (de) English (en) français (fr) polski (pl) русский (ru) 中文(中国大陆)‎ (zh_CN)


Зарезервированные слова отдельных режимов компилятора объединены следующим образом:

  • Режим Turbo Pascal: для использования доступны зарезервированные слова Turbo Pascal.
  • Режим Delphi: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal.
  • Режим Free Pascal: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal.


Зарезервированные слова в Turbo Pascal

Следующие зарезервированные слова встречаются в режиме Turbo Pascal:

ключевое слово описание
and логический оператор, требующий, чтобы оба операнда были равны true для того. чтобы результат был равен true
array множество элементов с одинаковым именем
asm начало кода, написанного на языке ассемблера
begin начало блока кода
break выход из условия case
case выбирает определенный сегмент кода для выполнения в зависимости от значения
const объявляет идентификатор с неизменяемым значением или переменную с инициализированным значением
constructor процедура, используемая для создания объекта
continue пропускает инструкции в цикле for и возобновляет выполнение с начала цикла
destructor процедура, используемая для "уничтожения" объекта
div оператор целочисленного деления
do используется для указания начала цикла
downto используется в цикле for для указания декремента (уменьшения) переменной-счетчика
else используется в условной конструкции if для выполнения альтернативной ветви, когда ветвь if не выполняется
end конец блока кода, записи или некоторых других конструкций
false логическое значение, означающее что условие не выполняется; противоположно значению true
file внешняя структура данных, обычно хранящаяся на диске
for цикл с использованием увеличения или уменьшения управляющей переменной
function объявляет начало процедуры, которая возвращает значение результата
goto осуществляет выход из сегмента кода и переходит в другое место
if проверяет условие и по результату сравнения выполняет набор инструкций
implementation определяет внутренние процедуры в модуле
in определяет элементы в коллекции
inline непосредственно встраивает машинный код в процедуру
interface глобальные объявления процедур в unit
label определяет точку перехода для оператора goto
mod оператор, возвращающий остаток целочисленного деления
nil значение указателя, означающее, что указатель ни на что не ссылается
not логический оператор, который инвертирует значение результата проверки
object определяет конструкцию типа "объект"
of определяет характеристики переменной
on
operator определяет процедуру, использующуюся для реализации оператора
or логический оператор, который позволяет использовать любой из двух вариантов
packed указывает, что элементы в массиве используют меньше памяти (данное ключевое слово необходимо, прежде всего, для совместимости с устаревшими программами, когда элементы массива упаковывались обычно автоматически)
procedure определяет начало процедуры, которая не возвращает значение результата
program определяет начало приложения. Данное ключевое слово обычно является необязательным
record набор разнотипных переменных, объединенных под одним именем
repeat цикл, представляющий секцию кода до условной инструкции until, выполняющийся до тех пор, пока результат сравнения равен true
set набор значений
shl оператор сдвига значения влево; эквивалентен умножению на степень 2
shr оператор сдвига значения вправо; эквивалентен делению на степень 2
string объявляет переменную, содержащую множество символов
then указывает начало кода в условии сравнения if
to используется в цикле for для указания инкремента (увеличения) переменной-счетчика
true логическое значение, указывающее что сравнение выполняется; противоположно значению false
type объявляет типы записей или новых классов переменных
unit раздельно компилируемые модули
until указывает окончание блока проверки в цикле repeat
uses перечисление названий модулей в текущей программе или модулей, на которые есть ссылки
var объявление переменных
while проверяет значение и, если оно равно true, выполняет инструкции цикла
with reference the internal variables within a record without having to refer to the record itself
xor логический оператор, являющийся исключающим ИЛИ

Зарезервированные слова в Object Pascal

Object Pascal extends the (Turbo) Pascal language with both support for dealing more easily with objects (object orientation) as well as other newer/more advanced concepts (threads, etc).
In addition to the reserved words in Turbo Pascal, the following reserved words are available in Delphi mode as well:
as
class
dispose
except
exit
exports
finalization
finally
inherited
initialization
is
library
new
on
out
property
raise
self
threadvar
try

Зарезервированные слова в Free Pascal

Зарезервированные слова в режиме Free Pascal включают:


Модификаторы (директивы)

Ниже представлен список модификаторов. Модификаторы не являются строго зарезервированными словами, однако они используются так же, как зарезервированные слова.
Подробнее см. в руководстве по Free Pascal.
absolute
abstract
alias
assembler
cdecl
cppdecl
default
export
external
forward
index
local
name
nostackframe
oldfpccall
override
pascal
private
protected
public
published
read
register
reintroduce
safecall
softfloat
stdcall
virtual
write

Неподдерживаемые модификаторы Turbo Pascal

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.

Light bulb  Примечание: However, these modifiers are supported in the DOS crosscompiler present in the FPC development version

far
near

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