ТК СНТТ |
| Структура | Склад | Адреса | Засади | Правопис | Конференція | Семінар | Термінографія | Вісник | Товариство | Комісія | Оголошення | Хто є хто | Архів |
Запитуєте – відповідаємо
► Щодо перекладу терміна thread
Одним з поширених термінів, що використовуються у програмуванні є в оригіналі англійський термін «thread» («POSIX thread», «UNIX thread», «kernel threads», «user threads» тощо). Існують два найбільш поширених варіанти його перекладу українською в сучасній літературі: «потік» та «нитка», також спорадично використовуються «нить», «низка» тощо. Дослівний переклад слова «thread» українською — «нить» або «нитка». Але найбільш поширеним в сучасній літературі, схоже, є «потік», який, як мені здається, є перекладом російського «поток», що в такому вигляді прийшов ще з радянської термінології, де означав «поток исполнения» («потік виконання»). Від перекладу «thread» як «потік» / «поток» останнім часом почали відмовлятися навіть росіяни, адже такий переклад суттєво конфліктує з усією іншою, англійською в оригіналі термінологією:«control flow» — буквально «потік керування» «flow of execution» — «потік виконання» «command stream» — «потік команд» «fiber (lightweight thread)» — буквально «волокно (полегшена нитка)», якщо перекладати «thread» як «нитку» В інтернеті є чимало прикладів, коли ці слова використовуються разом: «A stream is a list that is created incrementally by one thread (the producer) and subsequently consumed by one or more threads (the consumers)» «A Streaming Multi-Threaded Model» «we may have a single Stream for handling input, but may want to distribute the processing work over multiple threads» «flow control with thread priorities» «A logic gate is then simply stream object: a recursive procedure, running in its own thread» тощо.Чи не могли ви опублікувати роз'яснення щодо правильного перекладу «thread».
|
Англійський термін thread є багатозначним. Якщо у минулому столітті словники фіксували переважно його основне значення нитка та його похідники, то сучасні словники почали подавати низку нових значень, зокрема, у галузі комп’ютерної техніки та інформатики.
Так у «Англо-русскому словаре» В. К. Мюллєра (Вид. 24, випр. – М. : Изд-во «Русский язык», 1995. – 2106 с. – понад 70 тис. слів) подано:
thread
= [θrɛd] 1. noun 1) нитка; нить (тж. перен.); ... 2) tech. резьба, нарезка; шаг (винта) 3) electr. жила провода 4) geol. прожилок 5) attr. нитяный; нитевидный ... 2. v. 1) продевать нитку (в иголку) 2) нанизывать (бусы и т. п.) 3) пробираться; прокладывать путь; ... 4) пронизывать, проходить красной нитью 5) заправлять нитью (ткацкий станок, швейную машину и т. п.) 6) to thread a film into the camera cin. – заряжать аппарат кинолентой 7) tech. нарезать (резьбу) 8) вплетать, переплетать.
А в сучасних словниках з комп’ютерної техніки та програмування зафіксовано нові значення терміна thread, наприклад:
1) Англо-український тлумачний словник з обчислювальної техніки, інтернету і програмування (уклад. Пройдаков Е. М., Теплицький Л. А. – Вид. 2. – К. : Видавничий дім «СофтПрес», 2007 р. – 824 с.)
thread – потік, нитка, проф. тред # 1. логічне з’єднання між клієнтом і сервером, по якому пересилають запити; 2. породжений процес у багатозадачній системі # тред – одиниця диспетчеризації (одиниця виконання) у сучасних ОС. ... 3. сукупність статей на одну тему в межах телеконференції, що містить перехресні посилання ...
execution thread – потік виконання (у NT)
2) Англійсько-український словник з математики та інформатики (уклад. Є. Мейнарович, М. Кратко – К.; Ірпінь : ВТФ «Перун», 2010. – 568 с.)
thread
= [θrɛd] 1. ни́тка 2. жи́ла ка́белю 3. програмо́вий кана́л 4. прошива́ти/проши́ти• analytical ~
= аналіти́чна ни́тка, однови́мірний точко́вий ко́мплекс• elastic ~
= пру́жна ни́тка• execution ~
= ланцюжо́к (послідо́вність) вико́нування• ideal ~
= ідеа́льна ни́тка• idempotent ~
= ідемпоте́нтна ни́тка• local ~
= лока́льна ни́тка• proof ~
= ни́тка (шлях) дове́дення• unit ~
= одини́чна ни́тка
З огляду на словникову статтю термін thread має ще п’яте значення – 5. ланцюжо́к, послідо́вність, ни́зка.
В «
Англо-українському тлумачному словнику з обчислювальної техніки, інтернету і програмування» зафіксовано thread як потік, хоча в англійській мові на позначення потоку є терміни stream і flow. Другий словник – «Англійсько-український словник з математики та інформатики» – уникає подавати термін thread як потік, а словосполуку execution thread перекладає ланцюжо́к вико́нування або послідо́вність вико́нування замість потік виконання, тобто thread подано як ланцюжо́к, послідо́вність.Розглянемо тлумачення терміна thread як іменника в English Living Oxford Dictionaries на сторінці в інтернеті https://en.oxforddictionaries.com/definition/thread:
thread
NOUN
1 A long, thin strand of cotton, nylon, or other fibres used in sewing or weaving.
1.1 mass noun Cotton, nylon, or other fibres spun into long, thin strands and used for sewing.
1.2 literary A long, thin line or piece of something.
2 A theme or characteristic running throughout a situation or piece of writing.
a major thread running through the book is the primacy of form over substance’
2.1 A group of linked messages posted on an Internet forum that share a common subject or theme.
2.2 Computing A programming structure or process formed by linking a number of separate elements or subroutines, especially each of the tasks executed concurrently in multithreading.
3. A helical ridge on the outside of a screw, bolt, etc. or on the inside of a cylindrical hole, to allow two parts to be screwed together.
4. threads North American informal Clothes.
У цій статті перше основне значення терміна thread – це довга, тонка нитка для шиття або лінія.
Друге значення терміна thread стосується галузі інформатики та комп’ютерних наук, а саме: 2.1 – щодо групи (сукупності) повідомлень на спільну тему, розміщених на інтернет-форумі; 2.2 – щодо структури чи процесу програмування, що відбувається шляхом об’єднання та виконання низки елементів чи підпрограм ...
Жодне означення не тлумачить термін thread як потік – flow, stream ...
Термінологічний і лінгвістичний банк даних TERMIUM Plus (Terminological and linguistic data bank TERMIUM Plus, Канада, http://btb.termiumplus.gc.ca) подає означення терміна thread з галузі Operating Systems (Software) як сукупність процесів:
A collection of processes whose order determines the process eligible for execution. A thread is the element that is scheduled, and to which resources such as execution time, locks, and queues may be assigned.
Отже, ми вважаємо, що перекладати терміна thread та його похідники з галузі інформатики, програмування та комп’ютерної техніки доцільно саме у значенні ланцюжок, послідовність, низка певних процесів і подій, а не у значенні потік.
думка експерта
Щодо термінів flow, stream, thread та їхній переклад українською мовою
Логічно було б розмежувати ці три терміни так:
▪ flow – 1. плин, напр., data flow – плин даних (пор. плин води) 2. перебіг, напр., flow of execution – перебіг виконування
▪ stream – потік, напр., bit stream – потік двійкових даних
▪ thread –1. низка 2. гілка (форуму, обговорення тощо)
Василь Старко
Ці слова загалом дуже близькі і дещо синоніми, але в практичному вжитку є різниця:
(data) flow — дещо вищий рівень абстракції; напр. коли ви говорите про якусь діаграму майже завжди вживається data flow (і дуже рідко stream);
(data) stream — нижчий рівень; напр. в конкретній програмі, коли йдеться про набір байтів, майже завжди вживається data stream (це зокрема закріплено і мовами програмування: C++, Java тощо на позначення потоку байтів мають купу класів *Stream).
Оксфордський тлумачний тут теж підтримує:
stream — Computing
A continuous flow of data or instructions, typically one having a constant or predictable rate.
Тобто stream — це підтип (або конкретна реалізація) flow
Я вважаю, що дуже бажано мати окремий переклад для (execution) thread, але треба пам’ятати про всі похідні: threaded, multithreading, threaded code, thread-safe, topic thread ...
Також важливо пам’ятати, що thread часто вживають для гілок на форумі.
Оксфорд каже таке:
A programming structure or process formed by linking a number of separate elements or subroutines, especially each of the tasks executed concurrently in multithreading.
Вікіпедія має дещо технічніше тлумачення:
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.[1] The implementation of threads and processes differs between operating systems, but in most cases a thread is a component of a process. Multiple threads can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its variables at any given time.
Андрій Рисін