Reserved words/ru: 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 | Зарезервированные слова отдельных [режимов компилятора](/wiki-category/Modes/ru) объединены следующим образом: | |
| 4 | 2 | ||
| 5 | 3 | - [[Mode TP/ru|Режим Turbo Pascal]]: для использования доступны зарезервированные слова Turbo Pascal. | |
| 6 | 4 | - [[Mode Delphi/ru|Режим Delphi]]: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal. | |
| 7 | 5 | - [[Mode ObjFPC/ru|Режим Free Pascal]]: для использования доступны зарезервированные слова Turbo Pascal и Object Pascal. | |
| 8 | 6 | ||
| 9 | 7 | ## Зарезервированные слова в Turbo Pascal | |
| 10 | 8 | ||
| 11 | 9 | Следующие зарезервированные слова встречаются в режиме Turbo Pascal: | |
| 12 | 10 | ||
| 13 | 11 | | ключевое слово | описание | | |
| 14 | 12 | |----|----| | |
| 15 | 13 | | [[And/ru|and]] | логический оператор, требующий, чтобы оба операнда были равны true для того. чтобы результат был равен true | | |
| 16 | 14 | | [[Array/ru|array]] | множество элементов с одинаковым именем | | |
| 17 | 15 | | [[Asm/ru|asm]] | начало кода, написанного на языке ассемблера | | |
| 18 | 16 | | [[Begin/ru|begin]] | начало [[Block/ru|блока]] кода | | |
| 19 | 17 | | [[Break/ru|break]] | выход из условия [[Case/ru|case]] | | |
| 20 | 18 | | [[Case/ru|case]] | выбирает определенный сегмент кода для выполнения в зависимости от значения | | |
| 21 | 19 | | [[Const/ru|const]] | объявляет идентификатор с неизменяемым значением или переменную с инициализированным значением | | |
| 22 | 20 | | [[Constructor/ru|constructor]] | процедура, используемая для создания объекта | | |
| 23 | 21 | | [[Continue/ru|continue]] | пропускает инструкции в цикле **for** и возобновляет выполнение с начала цикла | | |
| 24 | 22 | | [[Destructor/ru|destructor]] | процедура, используемая для "уничтожения" объекта | | |
| 25 | 23 | | [[Div/ru|div]] | оператор целочисленного деления | | |
| 26 | 24 | | [[Do/ru|do]] | используется для указания начала цикла | | |
| 27 | 25 | | [[Downto/ru|downto]] | используется в цикле [[For/ru|for]] для указания декремента (уменьшения) переменной-счетчика | | |
| 28 | 26 | | [[Else/ru|else]] | используется в условной конструкции [[If/ru|if]] для выполнения альтернативной ветви, когда ветвь **if** не выполняется | | |
| 29 | 27 | | [[End/ru|end]] | конец блока кода, записи или некоторых других конструкций | | |
| 30 | 28 | | [[False/ru|false]] | логическое значение, означающее что условие не выполняется; противоположно значению [[True/ru|true]] | | |
| 31 | 29 | | [[File/ru|file]] | внешняя структура данных, обычно хранящаяся на диске | | |
| 32 | 30 | | [[For/ru|for]] | цикл с использованием увеличения или уменьшения управляющей переменной | | |
| 33 | 31 | | [[Function/ru|function]] | объявляет начало процедуры, которая возвращает значение результата | | |
| 34 | 32 | | [[Goto/ru|goto]] | осуществляет выход из сегмента кода и переходит в другое место | | |
| 35 | 33 | | [[If/ru|if]] | проверяет условие и по результату сравнения выполняет набор инструкций | | |
| 36 | 34 | | [[Implementation/ru|implementation]] | определяет внутренние процедуры в [[Unit/ru|модуле]] | | |
| 37 | 35 | | [[In/ru|in]] | определяет элементы в коллекции | | |
| 38 | 36 | | [[inline/ru|inline]] | непосредственно встраивает машинный код в процедуру | | |
| 39 | 37 | | [[Interface/ru|interface]] | глобальные объявления процедур в [[Unit/ru|unit]] | | |
| 40 | 38 | | [[Label/ru|label]] | определяет точку перехода для оператора [[Goto/ru|goto]] | | |
| 41 | 39 | | [[Mod/ru|mod]] | оператор, возвращающий остаток целочисленного деления | | |
| 42 | 40 | | [[Nil/ru|nil]] | значение указателя, означающее, что указатель ни на что не ссылается | | |
| 43 | 41 | | [[Not/ru|not]] | логический оператор, который инвертирует значение результата проверки | | |
| 44 | 42 | | [[Object/ru|object]] | определяет конструкцию типа "объект" | | |
| 45 | 43 | | [[Of/ru|of]] | определяет характеристики переменной | | |
| 46 | 44 | | [[On/ru|on]] | | | |
| 47 | 45 | | [[Operator/ru|operator]] | определяет процедуру, использующуюся для реализации оператора | | |
| 48 | 46 | | [[Or/ru|or]] | логический оператор, который позволяет использовать любой из двух вариантов | | |
| 49 | 47 | | [[Packed/ru|packed]] | указывает, что элементы в массиве используют меньше памяти (данное ключевое слово необходимо, прежде всего, для совместимости с устаревшими программами, когда элементы массива упаковывались обычно автоматически) | | |
| 50 | 48 | | [[Procedure/ru|procedure]] | определяет начало процедуры, которая не возвращает значение результата | | |
| 51 | 49 | | [[Program/ru|program]] | определяет начало приложения. Данное ключевое слово обычно является необязательным | | |
| 52 | 50 | | [[Record/ru|record]] | набор разнотипных переменных, объединенных под одним именем | | |
| 53 | 51 | | [[Repeat/ru|repeat]] | цикл, представляющий секцию кода до условной инструкции [[Until/ru|until]], выполняющийся до тех пор, пока результат сравнения равен true | | |
| 54 | 52 | | [[Set/ru|set]] | набор значений | | |
| 55 | 53 | | [[Shl/ru|shl]] | оператор сдвига значения влево; эквивалентен умножению на степень 2 | | |
| 56 | 54 | | [[Shr/ru|shr]] | оператор сдвига значения вправо; эквивалентен делению на степень 2 | | |
| 57 | 55 | | [[String/ru|string]] | объявляет переменную, содержащую множество символов | | |
| 58 | 56 | | [[Then/ru|then]] | указывает начало кода в условии сравнения [[If/ru|if]] | | |
| 59 | 57 | | [[To/ru|to]] | используется в цикле [[For/ru|for]] для указания инкремента (увеличения) переменной-счетчика | | |
| 60 | 58 | | [[True/ru|true]] | логическое значение, указывающее что сравнение выполняется; противоположно значению [[False/ru|false]] | | |
| 61 | 59 | | [[Type/ru|type]] | объявляет типы записей или новых классов переменных | | |
| 62 | 60 | | [[Unit/ru|unit]] | раздельно компилируемые модули | | |
| 63 | 61 | | [[Until/ru|until]] | указывает окончание блока проверки в цикле [[Repeat/ru|repeat]] | | |
| 64 | 62 | | [[Uses/ru|uses]] | перечисление названий [[Unit/ru|модулей]] в текущей программе или модулей, на которые есть ссылки | | |
| 65 | 63 | | [[Var/ru|var]] | объявление переменных | | |
| 66 | 64 | | [[While/ru|while]] | проверяет значение и, если оно равно [[True/ru|true]], выполняет инструкции цикла | | |
| 67 | 65 | | [[With|with]] | reference the internal variables within a record without having to refer to the record itself | | |
| 68 | 66 | | [[Xor/ru|xor]] | логический оператор, являющийся исключающим [[Or/ru|ИЛИ]] | | |
| 69 | 67 | ||
| 70 | 68 | ## Зарезервированные слова в Object Pascal | |
| 71 | 69 | ||
| 72 | 70 | 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).\ | |
| 73 | 71 | In addition to the reserved words in Turbo Pascal, the following reserved words are available in Delphi mode as well:\ | |
| 74 | 72 | [[As|as]]\ | |
| 75 | 73 | [[Class|class]]\ | |
| 76 | 74 | [[Dispose|dispose]]\ | |
| 77 | 75 | [[Except|except]]\ | |
| 78 | 76 | [[Exit|exit]]\ | |
| 79 | 77 | [[Exports|exports]]\ | |
| 80 | 78 | [[Finalization|finalization]]\ | |
| 81 | 79 | [[Finally|finally]]\ | |
| 82 | 80 | [[Inherited|inherited]]\ | |
| 83 | 81 | [[Initialization|initialization]]\ | |
| 84 | 82 | [[Is|is]]\ | |
| 85 | 83 | [[Library|library]]\ | |
| 86 | 84 | [[New|new]]\ | |
| 87 | 85 | [[On|on]]\ | |
| 88 | 86 | [[Out|out]]\ | |
| 89 | 87 | [[Property|property]]\ | |
| 90 | 88 | [[Raise|raise]]\ | |
| 91 | 89 | [[Self|self]]\ | |
| 92 | 90 | [[Threadvar|threadvar]]\ | |
| 93 | 91 | [[Try|try]]\ | |
| 94 | - | ||
| 95 | 92 | ||
| 96 | 93 | ## Зарезервированные слова в Free Pascal | |
| 97 | 94 | ||
| 98 | 95 | Зарезервированные слова в режиме Free Pascal включают: | |
| 99 | 96 | ||
| 100 | 97 | - зарезервированные слова [[Mode TP/ru|режима Turbo Pascal]] | |
| 101 | 98 | - зарезервированные слова [[Mode Delphi/ru|режима Object Pascal]]\ | |
| 102 | 99 | ||
| 103 | - | ||
| 104 | - | ||
| 105 | 100 | ## Модификаторы (директивы) | |
| 106 | 101 | ||
| 107 | 102 | Ниже представлен список модификаторов. Модификаторы не являются строго зарезервированными словами, однако они используются так же, как зарезервированные слова.\ | |
| 108 | 103 | Подробнее см. в руководстве по Free Pascal.\ | |
| 109 | 104 | [[Absolute/ru|absolute]]\ | |
| 110 | 105 | [[abstract]]\ | |
| 111 | 106 | [[alias]]\ | |
| 112 | 107 | [[assembler]]\ | |
| 113 | 108 | [[cdecl]]\ | |
| 114 | 109 | [[Cppdecl|cppdecl]]\ | |
| 115 | 110 | [[default]]\ | |
| 116 | 111 | [[export]]\ | |
| 117 | 112 | [[external]]\ | |
| 118 | 113 | [[forward]]\ | |
| 119 | 114 | [[index]]\ | |
| 120 | 115 | [[local]]\ | |
| 121 | 116 | [[name]]\ | |
| 122 | 117 | [[nostackframe]]\ | |
| 123 | 118 | [[oldfpccall]]\ | |
| 124 | 119 | [[override]]\ | |
| 125 | 120 | [[pascal]]\ | |
| 126 | 121 | [[private]]\ | |
| 127 | 122 | [[protected]]\ | |
| 128 | 123 | [[public]]\ | |
| 129 | 124 | [[published]]\ | |
| 130 | 125 | [[read]]\ | |
| 131 | 126 | [[Register/ru|register]]\ | |
| 132 | 127 | [[Reintroduce|reintroduce]]\ | |
| 133 | 128 | [[safecall]]\ | |
| 134 | 129 | [[softfloat]]\ | |
| 135 | 130 | [[stdcall]]\ | |
| 136 | 131 | [[virtual]]\ | |
| 137 | 132 | [[write]]\ | |
| 138 | - | ||
| 139 | 133 | ||
| 140 | 134 | ## Неподдерживаемые модификаторы Turbo Pascal | |
| 141 | 135 | ||
| 142 | 136 | 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. | |
| 143 | 137 | ||
| 144 | 138 | As Free Pascal does not support 16 bit code (only 32 and 64 bit), these modifiers are irrelevant in Free Pascal code. | |
| 145 | 139 | ||
| 146 | 140 | > **Note:** However, these modifiers are supported in the [[DOS]] crosscompiler present in the FPC development version | |
| 147 | 141 | ||
| 148 | 142 | [[Far|far]]\ | |
| 149 | 143 | [[Near|near]]\ | |
| 150 | 144 | ||
| 151 | 145 | ## More functionality | |
| 152 | 146 | ||
| 153 | 147 | 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: | |
| 154 | 148 | ||
| 155 | 149 | - RTL: Run-Time Library, available for all FPC and Lazarus programs | |
| 156 | 150 | - 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) | |
| 157 | 151 | - FPC Packages: other packages provided by FPC | |
| 158 | 152 | - Lazarus components: these are Lazarus components that can be dropped on a form and often based on FCL or FPC packages | |
| 159 | 153 | - Lazarus utility functions: e.g. the [fileutil](http://wiki.lazarus.freepascal.org/Category:fileutil) unit. | |
| 160 | 154 | ||
| 161 | 155 | Apart from the libraries provided by FPC and Lazarus, there are more libraries/components available: | |
| 162 | 156 | ||
| 163 | 157 | - FPC user-supplied units: see the FPC wiki | |
| 164 | 158 | - Lazarus CCR: components | |
| 165 | 159 | - User-supplied code on the internet: see | |
| 166 | 160 | ||
| 167 | 161 | --- | |
| 168 | 162 | *From the Free Pascal wiki, page "Reserved words/ru", as it stood on 2020-04-04 after a change by Trev, 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).* |
