1
0
mirror of https://github.com/php/doc-uk.git synced 2026-03-23 22:52:14 +01:00

Omissions fixed, synced some files with EN, strings.xml - partial sync

This commit is contained in:
mproshchuk
2024-09-20 16:04:57 +03:00
parent 1777ff04a6
commit 6c7c80465c
6 changed files with 297 additions and 274 deletions

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 2d0ae2133ccc5365c31ac675c88cda06b4877e22 Maintainer: mproshchuk Status: ready -->
<!-- EN-Revision: 1fa5c78fa59c402eae86c39a976f2fe98aaa3a9c Maintainer: mproshchuk Status: ready -->
<chapter xml:id="introduction" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<info><title>Вступ</title></info>
@@ -38,14 +38,13 @@
</example>
</para>
<para>
Замість багатьох команд для виведення HTML (як це ми бачимо в C або Perl),
PHP сторінки містять HTML з вбудованим кодом, який "щось" робить
(в нашому випадку, виводить "Привіт, я - PHP скрипт!").
Код PHP відокремлюється спеціальними <link
Замість багатьох команд для виведення HTML (як це видно в C або Perl),
PHP-сторінки містять HTML з вбудованим кодом, який "щось" робить (в цьому
випадку виводить <computeroutput>"Привіт, я - PHP
скрипт!"</computeroutput>). Код PHP відокремлюється спеціальними <link
linkend="language.basic-syntax.phpmode">початковими і кінцевими тегами
<code>&lt;?php</code> та <code>?&gt;</code>
</link>,
які дозволяють "перемикатись" в "PHP режим" і виходити з нього.
<code>&lt;?php</code> та <code>?&gt;</code></link>, які дозволяють
"перемикатись" в "PHP-режим" і виходити з нього.
</para>
<para>
PHP відрізняється від JavaScript тим, що PHP-скрипти виконуються на сервері
@@ -66,7 +65,7 @@
сфера застосування не обмежується лише цим. Читайте далі, та не пропустіть
розділ <link linkend="intro-whatcando">Можливості PHP</link>,
або зразу почніть з <link linkend="tutorial">простого посібника</link>,
якщо вас цікавить виключно вебпрограмування.
якщо вас цікавить виключно програмування вебу.
</para>
</section>

View File

@@ -1,329 +1,354 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b0dd627899cf5c57d3d64fac07e9b6579dfca082 Maintainer: mproshchuk Status: ready -->
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Apache 2.x на Unix системах</title>
<para>
Цей розділ містить замітки та підказки щодо встановлення Apache 2.x з PHP в
системи Unix.
</para>
<!-- EN-Revision: e51792efe0f103ec8724ad199524d7543610c978 Maintainer: mproshchuk Status: ready -->
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Apache 2.x на Unix системах</title>
<para>
Цей розділ містить замітки та підказки щодо встановлення Apache 2.x з PHP в
системи Unix.
</para>
&warn.apache2.compat;
&warn.apache2.compat;
<para>
<link xlink:href="&url.apache2.docs;">Документація на сайті Apache</link>
є найбільш авторитетним джерелом інформації про сервер Apache 2.x.
Там можна знайти більше інформації про параметри його інсталяції.
</para>
<para>
Найновішу версію HTTP-сервера Apache можна отримати на
<link xlink:href="&url.apache;">сторінці завантаження Apache</link>.
Також треба завантажити потрібну версію PHP (див. навігаційну панель вгорі).
Тут є лише короткий опис базового встановлення Apache 2.x та PHP. Детальнішу
інформацію можна прочитати в
<link xlink:href="&url.apache2.docs;">Документації Apache</link>.
Зазначення конкретного номера версії навмисно оминається, щоб не плутати
користувачів наведених тут інструкцій. Внизу в прикладах, 'NN' потрібно
замінити версією Apache, яка буде використовуватись.
</para>
<para>
На даний момент є дві версії Apache 2.x - це 2.2 та 2.4.
Хоча є певні причини для вибору однієї чи іншої версії, але 2.4 є зараз
найновішою та рекомендованою. Тим не менш, наведені тут інструкції мають
працювати для обох версій. Варто зазначити, що Apache httpd 2.2 офіційно не
підтримується і для нього не випускаються нові розробки чи виправлення.
</para>
<orderedlist>
<listitem>
<para>
<link xlink:href="&url.apache2.docs;">Документація на сайті Apache</link>
є найбільш авторитетним джерелом інформації про сервер Apache 2.x.
Там можна знайти більше інформації про параметри його інсталяції.
Завантаживши HTTP-сервер Apache за посиланням вище, його необхідно
розпакувати:
</para>
<para>
Найновішу версію HTTP-сервера Apache можна отримати на
<link xlink:href="&url.apache;">сторінці завантаження Apache</link>.
Також треба завантажити потрібну версію PHP (див. навігаційну панель вгорі).
Тут є лише короткий опис базового встановлення Apache 2.x та PHP. Детальнішу
інформацію можна прочитати в
<link xlink:href="&url.apache2.docs;">Документації Apache</link>.
Зазначення конкретного номера версії навмисно оминається, щоб не плутати
користувачів наведених тут інструкцій. Внизу в прикладах, 'NN' потрібно
замінити версією Apache, яка буде використовуватись.
</para>
<para>
На даний момент є дві версії Apache 2.x - це 2.2 та 2.4.
Хоча є певні причини для вибору однієї чи іншої версії, але 2.4 є зараз
найновішою та рекомендованою. Тим не менш, наведені тут інструкції мають
працювати для обох версій. Варто зазначити, що Apache httpd 2.2 офіційно не
підтримується і для нього не випускаються нові розробки чи виправлення.
</para>
<orderedlist>
<listitem>
<para>Завантаживши HTTP-сервер Apache, його необхідно розпакувати:</para>
<informalexample>
<screen>
<informalexample>
<screen>
<![CDATA[
tar -xzf httpd-2.x.NN.tar.gz
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>Аналогічно, неодхідно розпаковати файли з початковим кодом PHP:</para>
<informalexample>
<screen>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Таким же способом необхідно розпакувати файли з початковим кодом PHP:
</para>
<informalexample>
<screen>
<![CDATA[
tar -xzf php-NN.tar.gz
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Далі потрібно зібрати та встановити Apache. Докладніші рекоментації є на
сайті Apache.
</para>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Далі потрібно зібрати та встановити Apache. Докладніші рекомендації є в
документації щодо встановлення Apache.
</para>
<informalexample>
<screen>
<informalexample>
<screen>
<![CDATA[
cd httpd-2_x_NN
./configure --enable-so
make
make install
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Тепер Apache 2.x.NN доступний за адресою /usr/local/apache2, зі
встановленим стандартним модулем MPM prefork та конфігурацією, яка
дозволяє додавати інші потрібні модулі. Щоб перевірити інсталяцію,
використовується звичайна процедура для старту сервера Apache, наприклад:
<informalexample>
<screen>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Тепер Apache 2.x.NN доступний за адресою /usr/local/apache2, зі
встановленим стандартним модулем MPM prefork та конфігурацією, яка дозволяє
додавати інші потрібні модулі. Для перевірки інсталяції використовується
звичайна процедура запуску сервера Apache, наприклад:
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>
далі треба зупинити сервер, щоб перейти до встановлення PHP:
<informalexample>
<screen>
</screen>
</informalexample>
далі треба зупинити сервер, щоб перейти до налаштування PHP:
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl stop
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Тепер треба налаштувати та зібрати PHP. Наприклад, визначити, які саме
розширення будуть включені в PHP. Для перегляду списку доступних
параметрів необхідно запустити <command>./configure --help</command>. В
цьому прикладі виконується проста конфігурація Apache 2 з підтримкою MySQL.
</para>
<para>
Тепер конфігуруємо та збираємо PHP. Наприклад, визначаємо які саме
розширення будуть включені в PHP. Щоб побачити список доступних
параметрів, запускаємо <command>./configure --help</command>. В даному
прикладі виконується проста конфігурація Apache 2 з підтримкою MySQL.
</para>
<para>
Якщо Apache було зібрано вручну, як описано вище, в наступному прикладі
шлях буде відповідати розташуванню apxs, але якщо Apache встановлювався
по-іншому, то потрібно змінити шлях до apxs. Варто зауважити, що деякі
дистрибутиви можуть перейменувати apxs в apxs2.
</para>
<informalexample>
<screen>
<para>
Якщо Apache було зібрано вручну, як описано вище, в наступному прикладі
шлях буде відповідати розташуванню <command>apxs</command>, але якщо Apache
встановлено по-іншому, то потрібно змінити шлях до <command>apxs</command>.
Варто зауважити, що деякі дистрибутиви можуть перейменувати
<command>apxs</command> в <command>apxs2</command>.
</para>
<informalexample>
<screen>
<![CDATA[
cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql
make
make install
]]>
</screen>
</informalexample>
</screen>
</informalexample>
<para>
Для зміни конфігурації після інсталяції, потрібно запустити заново кроки:
configure, make та make install. Після цього перезапустити Apache, щоб
зміни були застосовані. Перекомпільовувати Apache не потрібно.
</para>
<para>
Для зміни конфігурації після інсталяції, потрібно заново виконати кроки:
<command>configure</command>, <command>make</command> та <command>make
install</command>. Після цього перезапустити Apache, щоб зміни були
застосовані. Перекомпільовувати Apache не потрібно.
</para>
<para>
Варто зауважити, що якщо не сказано іншого, то команда <command>make
install</command> також встановлює
<link xlink:href="&url.php.pear;">PEAR</link>, різноманітні інструменти
PHP, як от <link linkend="install.pecl.phpize">phpize</link>, PHP CLI та
інші.
</para>
</listitem>
<listitem>
<para>
Налаштування <filename>php.ini</filename>.
</para>
<para>
Варто зауважити, що якщо не сказано іншого, то 'make install' буде також
встановлювати PEAR, PHP CLI, певні сервіси PHP, такі як phpize та інше.
</para>
</listitem>
<listitem>
<para>
Встановлення php.ini.
</para>
<informalexample>
<screen>
<informalexample>
<screen>
<![CDATA[
cp php.ini-development /usr/local/lib/php.ini
]]>
</screen>
</informalexample>
</screen>
</informalexample>
<para>
Можна редагувати файл .ini, додаючи потрібні опції PHP. Для розміщення
php.ini в іншому місці, використовується опція
<command>--with-config-file-path=/some/path</command> на 5-му кроці.
</para>
<para>
Якщо буде обрано php.ini-production, краще прочитати список відмінностей
між файлами .ini, щоб розуміти як це вплине на поведінку PHP.
</para>
<para>
Можна редагувати файл <literal>.ini</literal>, додаючи потрібні опції PHP.
Для розміщення <filename>php.ini</filename> в іншому місці
використовується опція
<literal>--with-config-file-path=/some/path</literal> на 5-му кроці.
</para>
<para>
Якщо буде обрано <filename>php.ini-production</filename>, краще прочитати
список відмінностей між файлами <literal>.ini</literal>, щоб розуміти як це
вплине на поведінку PHP.
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
Відредагуємо <filename>httpd.conf</filename>, щоб завантажувався модуль
PHP. Шлях, який зазначено праворуч від оператора
<literal>LoadModule</literal>, повинен вказувати на розташування модуля PHP
у системі. Згадана раніше команда <command>make install</command> повинна
це робити, але краще перевірити.
</para>
<para>
Відредагуємо httpd.conf, щоб завантажувався модуль PHP. Шлях, який
зазначено праворуч від запису LoadModule, повинен вказувати на
розташування модуля PHP у системі. Команда <command>make
install</command>, про яку тут згадувалось раніше, повинна вже була
зробити це, але краще перевірити ще раз.
</para>
<informalexample>
<para>
Для PHP 8:
</para>
<informalexample>
<programlisting role="apache-conf">
<programlisting role="apache-conf">
<![CDATA[
LoadModule php_module modules/libphp.so
]]>
</programlisting>
</informalexample>
<informalexample>
<para>
Для PHP 7:
</para>
<programlisting role="apache-conf">
</programlisting>
</informalexample>
<informalexample>
<para>
Для PHP 7:
</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php7_module modules/libphp7.so
]]>
</programlisting>
</informalexample>
</listitem>
<listitem>
<para>
Скажемо Apache, щоб обробляв розширення .php через PHP. Замість того, щоб
використовувати лише директиву Apache AddType, ми хочемо уникнути
потенційної небезпеки завантаження та створення файлів, таких як
exploit.php.jpg, які будуть оброблятись через PHP. Використовуючи цей
приклад, можна додати будь-яке закінчення (і не одне), яке буде
оброблятись через PHP. Ми вказали .php лише для прикладу.
</para>
<informalexample>
<programlisting role="apache-conf">
</programlisting>
</informalexample>
</listitem>
<listitem>
<para>
Скажемо Apache обробляти файли з певним закінченням через PHP. Наприклад, з
<literal>.php</literal>. Замість того, щоб використати лише директиву
Apache <literal>AddType</literal>, краще не дати обробити через PHP
потенційно небезпечні завантаження та створені файли на кшталт
<filename>exploit.php.jpg</filename>. Використовуючи наступний приклад,
можна додати будь-яке (і не одне) закінчення, яке потрібно обробляти через
PHP. Тут <literal>.php</literal> вказано суто для прикладу.
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>
<para>
Або ж, якщо ми хочемо дозволити щоб файли .php, .php2, .php3, .php4, .php5,
.php6, та .phtml оброблялись через PHP, але ніякі інші, ми пишемо так:
</para>
</programlisting>
</informalexample>
<para>
Або ж, якщо треба дозволити PHP обробляти файли <literal>.php</literal>,
<literal>.php2</literal>, <literal>.php3</literal>,
<literal>.php4</literal>, <literal>.php5</literal>,
<literal>.php6</literal> та <literal>.phtml</literal>, але ніякі інші,
то можна використати такий код:
</para>
<informalexample>
<programlisting role="apache-conf">
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>
</programlisting>
</informalexample>
<para>
Або щоб дозволити файли .phps обробляти через php source filter, та
показувати їх вміст з підсвічуванням синтаксису, використовується таке:
</para>
<para>
Для обробки <literal>.phps</literal> через "php source filter" з метою
показувати їх вміст з підсвічуванням синтаксису, використовується таке:
</para>
<informalexample>
<programlisting role="apache-conf">
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
]]>
</programlisting>
</informalexample>
</programlisting>
</informalexample>
<para>
Можна використовувати модуль mod_rewrite, щоб дозволити показувати
початковий код з підсвічуванням синтаксису в файлах з розширенням .php,
без необхідності їх переназивати чи копіювати до файлів .phps:
</para>
<para>
Можна використовувати модуль <literal>mod_rewrite</literal>, щоб дозволити
показувати початковий код з підсвічуванням синтаксису в файлах із
закінченням <literal>.php</literal> без необхідності переназивати їх чи
копіювати їхній код до файлів <literal>.phps</literal>:
</para>
<informalexample>
<programlisting role="apache-conf">
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
]]>
</programlisting>
</informalexample>
</programlisting>
</informalexample>
<para>
Не слід вмикати php source filter на виробничих системах, де він може
розкрити конфіденційну або іншу важливу інформацію, розміщену в
початковому коді.
</para>
<para>
Не слід вмикати "php source filter" у виробничому середовищі, де він може
розкрити конфіденційну або іншу важливу інформацію, розміщену в коді.
</para>
</listitem>
</listitem>
<listitem>
<para>
Стандартну процедура запуску сервер Apache:
</para>
<informalexample>
<screen>
<listitem>
<para>
Краще застосовувати стандартну процедуру запуску сервера Apache:
</para>
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>
<para>АБО:</para>
<informalexample>
<screen>
</screen>
</informalexample>
<para>АБО:</para>
<informalexample>
<screen>
<![CDATA[
service httpd restart
]]>
</screen>
</informalexample>
</listitem>
</orderedlist>
</screen>
</informalexample>
</listitem>
</orderedlist>
<para>
Дотримуючись зазначених вище кроків, ми запустимо вебсервер Apache2 з
підтримкою PHP як модуля <literal>SAPI</literal>. Звичайно, є значно більше
параметрів, доступних для Apache та PHP. Більше інформації можна отримати
ввівши в консолі <command>./configure --help</command> в їхніх кореневих
теках.
</para>
<para>
Apache можна зробити багатопотоковим, вибравши
<filename>worker</filename> MPM, замість стандартного
<filename>prefork</filename> MPM під час збирання Apache, додавши наступний
параметр до <command>./configure</command> на 3-му кроці:
</para>
<informalexample>
<screen>
<para>
Дотримуючись зазначених вище кроків можна запустити вебсервер Apache2 з
підтримкою PHP як модуля <literal>SAPI</literal>. Звичайно, є значно більше
параметрів, доступних для Apache та PHP. Більше інформації можна отримати,
ввівши в консолі <command>./configure --help</command> в кореневих теках
початкових файлів.
</para>
<para>
Apache можна зробити багатопотоковим, вибравши <filename>worker</filename>
MPM замість стандартного <filename>prefork</filename> MPM під час збирання
Apache, додавши наступний параметр до <command>./configure</command> на 3-му
кроці:
</para>
<informalexample>
<screen>
<![CDATA[
--with-mpm=worker
]]>
</screen>
</informalexample>
<para>
Не варто бездумно використовувати цю опцію, а тільки, якщо відомо про всі
наслідки такого рішення. В документації для Apache стосовно
<link xlink:href="&url.apache2.mpm;">модулів MPM</link> значно детальніше
розкрита ця тема.
</para>
<note>
<para>
У розділі "Часті питання (ЧаПи)" з приводу
<link linkend="faq.installation.apache.multiviews">Apache MultiViews
</link> є відповідь, чи можна використовувати цю опцію разом з PHP.
</para>
</note>
<note>
<para>
Щоб зібрати версію багатопотокового Apache, цільова система повинна
мати підтримку потоків. В цьому випадку, PHP потрібно також збирати з
Zend Thread Safety (ZTS). Цю конфігурацію підтримують не всі розширення.
Ми рекомендуємо встановлювати Apache зі стандартним модулем
<filename>prefork</filename> MPM.
</para>
</note>
</sect1>
</screen>
</informalexample>
<para>
Не варто бездумно використовувати цю опцію, а тільки, якщо відомо про всі
наслідки такого рішення. В документації для Apache стосовно
<link xlink:href="&url.apache2.mpm;">модулів MPM</link> значно детальніше
розкрита ця тема.
</para>
<note>
<para>
У розділі <link linkend="faq.installation.apache.multiviews">ЧаПи про Apache
MultiViews</link> обговорено використання цієї опції разом з PHP.
</para>
</note>
<note>
<para>
Щоб зібрати версію багатопотокового Apache, цільова система повинна мати
підтримку потоків. В такому разі PHP потрібно також збирати з Zend Thread
Safety (ZTS). Цю конфігурацію підтримують не всі розширення. Рекомендовано
встановлювати Apache зі стандартним модулем <filename>prefork</filename> MPM.
</para>
</note>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -508,7 +508,7 @@ EOT;
<![CDATA[
Мене звати Петро. Я друкую Foo.
Зараз я друкую Bar2.
Має надрукуватись велику буква 'A': A]]>
Має надрукуватись велика буква 'A': A]]>
</screen>
</example>
@@ -705,28 +705,27 @@ EOT;
</simpara>
<sect4 xml:id="language.types.string.parsing.simple">
<title>Simple syntax</title>
<title>Простий синтаксис</title>
<simpara>
If a dollar sign (<literal>$</literal>) is encountered, the parser will
greedily take as many tokens as possible to form a valid variable name.
Enclose the variable name in curly braces to explicitly specify the end of
the name.
Якщо трапляється знак долара (<literal>$</literal>), синтаксичний
аналізатор "жадібно" бере якомога більше лексем для формування правильної
назви змінної.
</simpara>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$juice = "apple";
$фрукт = "персик";
echo "He drank some $juice juice." . PHP_EOL;
echo "Він з'їв $фрукт." . PHP_EOL;
// Unintended. "s" is a valid character for a variable name, so this refers to $juices, not $juice.
echo "He drank some juice made of $juices." . PHP_EOL;
// Ненавмисно. "и" є допустимим символом для назви змінної, тому тут йде мова про $фрукти, а не про $фрукт.
echo "Він поклав в тарілку три $фрукти." . PHP_EOL;
// Explicitly specify the end of the variable name by enclosing the reference in braces.
echo "He drank some juice made of {$juice}s.";
// Явно вказано кінець назви змінної, взявши назву у фігурні дужки.
echo "Він поклав в тарілку три {$фрукт}и.";
?>
]]>
@@ -734,9 +733,9 @@ echo "He drank some juice made of {$juice}s.";
&example.outputs;
<screen>
<![CDATA[
He drank some apple juice.
He drank some juice made of .
He drank some juice made of apples.
Він з'їв персик.
Він поклав в тарілку три .
Він поклав в тарілку три персики.
]]>
</screen>
</informalexample>

View File

@@ -3,8 +3,8 @@
<section xml:id="ftp.installation" xmlns="http://docbook.org/ns/docbook">
&reftitle.install;
<para>
Для того щоб використовувати FTP-функції в скриптах, потрібно зібрати PHP
з прапорцем <option role="configure">--enable-ftp</option>.
Для використання FTP-функцій в скриптах потрібно зібрати PHP з прапорцем
<option role="configure">--enable-ftp</option>.
</para>
<para>
У Windows це розширення завжди збирається як спільне і тому його потрібно

View File

@@ -8,12 +8,12 @@
<preface xml:id="intro.parallel">
&reftitle.intro;
<para>
Розширення parallel дозволяє виконувати PHP-код в паралельних процесах.
Розширення parallel дозволяє виконувати PHP-код в паралельних потоках.
Воно доступне в PHP ≥ 7.2.0. Для parallel ≥ 1.2.0 потрібна версія PHP ≥ 8.0.0.
</para>
<para>
Це стислий опис загального алгоритму parallel. Більше інформації є в цьому
розділі посібника.
Це стислий опис загального алгоритму parallel. Більше інформації є в
наступних частинах розділу.
</para>
<simplesect>
<title>Клас Runtime</title>

View File

@@ -22,7 +22,7 @@
</itemizedlist>
Функція <function>parallel\run</function> гарантує, що завдання почне
виконуватися паралельно, як тільки дозволять можливості апаратного та
програмного забезпечення, без потреби явно створювати середовища виконання.
програмного забезпечення, без потреби явно створювати середовище виконання.
Для більшості програм достатньо саме функціонального API.
</para>
</partintro>