Open byrtolet opened 3 years ago
следните може да допишем ако си окей
data race - спорен достъп до данни race condition - условие на оспорван/спорен достъп
предложените преводи на второто са много описателни и най-вероятно няма да се възприемат (от обществото), защото са в преносен смисъл и освен това са дълги. като цяло по-кратките преводи винаги са по-устойчиви , а причината за ползването на внесените от английски понятия, е че са по-кракти просто като брой срички. .
Съгласен съм, че колкото по-кратки (и точни) толкоз повече ще се усвоят. За "Race condition" се говори, когато имаме различни действия или операции (не задължително свързани с достъп (до памет)), които се опитват да бъдат извършени едновременно, а това логически или физически е невъзможно/проблематично. На мен лично най-много ми харесва "биещи се операции". Но според мен е добре, когато имаме различни варианти за някои термини - понякога термините са твърде общи и не пречи ако намерим по-удачни думи, описващи макар и част от значението.
Аз почти за всичко такова ползвам "състезание на сигналите". Много ми е логично и техническо в същото време.
Добавка. До колкото помня "състезание на сигналите" е точен превод на "race condition" в схемотехниката. Послеслов. Понякога се занимавам с вградени системи и мисля, че го знам от старите инженери и схемотехници.
@metala, позволи да не се съглася, че condition се превежда като сигнал. и всъщност тук превод дума по дума не е окей, защото race condition описва ситуациям при която има състезание. т.е. 'условие за съревнование' или "условие за надпревара" е точния дословен превод. но дали е разбираем в технически смисъл вече е по-трудно да се каже.
т.е. тук race е прилагателно към condition (т.е. какъв вид условие), а не condition прилагателно към race (какво състезание).
ако беше data race тогава щяхме да имаме спор за данни или надпревара за данни.
@stelf , condition е не само условие, но и състояние/кондиция.
На руски жаркон Состояние гонки или "конкуренция", или "неопределённость параллелизма" в акедмичните среди. На български е по-точно "Състезателно състояние" или "Състояние на състезание", т.е. състояние при което възниква състезание.
Бих предпочел: race condition = състезание на сигнали data race = състезание за данни
Защото:
Не мисля, че е добра идея винаги да превеждаме буквално изрази дума по дума - рядко води до точен и хубав превод.
В елктрониката/схемотехниката, ако е навлезнал термина "състезание на сигнали" - нямам нищо против. Но в софтуера сигнал се ползва в 2 смисъла (до колкото знам): Като механизъм за комуникация в Юниксоподобните операционни ситеми. В QT и други софтуерни библиотеки, за механизма signal - slot. Но мисля, че е подвеждащо да се говори за състезание и надпревара на сигнали в софтуер, където въобще няма сигнали - или още по-зле - има сигнали, но те нямат никакво отношение към проблемното състояние.
И определено condition в случая е състояние.
Тъй че по-подходящо определение на явлението "race condition" според мен е: Състояние на неопределеност на реда на операциите/събитията.
От там сигурно може да се съкрани на "Състояние на неопределеност, или недефинирано/неопределено състояние", особено ако се има предвид горната дефиниция. Но според мен за същото явление може да се говори по друг начин: Дадените операции се бият. (Даже в речника, който позлвам се споменава значение "борба" на race) (например можем да говорим, че кредитирането на дадена банкова сметка се бие с дебитирането в дадения момент) Операциите си пречат. Операциите са взаимопречещи си / взаимопротиворечащи си / с неопределна едновременност
Също можем да говорим за: Неопределн ред (на събития/операции). Времева неопределеност.
А ако говорим за сигнали или събития те могат да се "прескачат".
Отделно, не е задължително всички сътояния от тип "race condition" да се определят с един и същи термин (Дори и на английски имаме отделно data race, което е частен случай на race condition).
Та казано на кратко, на български, думата състезание няма никакви конотации, в българския език, които да описват проблемите състояния.
Ако ще е буквален превода, по-добре race да е гонка. По-кратко е, и отделно съвпада с руския термин.
@stelf аз тръгвам от многообразието на преводи на думата сигнал. Сигнал може да е всяко нещо, което предава информация или известява за нещо. Микроконтролерът може да подава сигнал с високо напрежение и да държи състояние в единица. Смяната на състоянието от единица в нула също може да се разглежда като сигнал, който да задейства прекъсване по падащ фронт на сигнала.
Иначе пуристът в мен би желал нещо по-близо до английския термин, но на български. Така, че 'състояние на надпревара' е най-доброто от споменатите. Съревнование е по-близко до competition. Условие, аз го свързвам с повече с условност. Мисля, че 'състезание за данни' или 'надпревара за данни' също звучи намясто.
@byrtolet не бих казал, че е 'състояние на неопределеност'. С достатъчно изследване може да се определи във всеки един момент от времето какво се случва,
Според мен е по-добре понякога да се заемат направо думите и термините, от колкото да се превеждат понятията дословно. Дословно преведени те рядко имат смисъл, камо ли същия такъв.
@metala Не съм съгласен, че е винаги възможно да се изследва какво се случва. Но не това е най-важното. Проблема, който описва понятието, което обсъждаме, е не че не знаем какво точно се е случило (или би се случило), а че не знаем как или не можем адекватно да реагираме на случващото се (в случая, когато пишем код).
В случая с електронни системи ще дам пример с RS тригер при който подаваме сигнал и на двата входа. Чисто физически тази система е неопределена, може като изход, тригера да е логическа нула, еденица, някакво междинно (невалидно) ниво, или да се клати. Резултата може да зависи вече и от странични неща, като температура, или характеристики на отделните транзистори).
Ще опитам да преведа първото изречение от wikipedia.org/Race_condition "Race condition" e състояние, при което поведението на системата (сиреч резултата) зависи от последователността или времето на възникване на неконтролирани събития.
Тоест при едни и същи събития, самата разлика във времената на възникването им води различни резултати.
Това не означава непременно че са непредсказуеми. Тоест резултата може да е хаотичен (в математическия смисъл на думата).
Дали тези резултати подлежат на изследване е отделен въпрос, възможно е да могат да се обхванат всичките възможности, възможно е и да не могат.
Моята дефиниция беше "състояние на неопределеност на реда на събитията", а не не на резултата, въпреки, че той може да е също неопределим.
Определено ми харесва на български да говорим, че събитията се бият, си пречат, се изключват, а не да характеризираме, и без туй доста общото и абстрактно понятие "race condition". Тоест да говорим за предпоставките, а не за потенциалните следстввията.
Да разгледаме още един пример. Имаме тесногърло гърне с жълтици (в която може да се пъхне най-много една ръка в даден момент). Имаме и няколко човека, които искат да си вземат жълтици.
На английски, това е "race condition", а на български е "бой", или поне предпоставка за бой.
@byrtolet не виждам в превода горе нещо за неопределимост. Има за неконтролириеми събития, но хаотичен не означава неопределен / неопределяем. Генераторът на псевдослучайни числа е хаотичен, но по дефиниция той е детерминистичен.
@metala Неопределени са причините, а не следствията. И когато имаме хаотичен процес, чието начално състояние не знаем точно, не можем да съдим и за развитието му. Тъй че в следствие и резултата е неопределен.
@byrtolet добре. Има логика. Въпреки това, не смятам, че е правилният превод за явлението което разискваме.
ПС. "бой" ще е ако има физическа разправа или някакъв вид стълкновение. Примерът с гърнето е един вид борба, а борбата е спорт, в случая уточнено и обобщено това ще е състезание или надпревара.
Наистина, добрия превод е труден. Аз само давам своето скромно мнение. В случая предлагах не да превеждаме самите термини, а да се опитаме да опишем ситуациите при които възникват на български.
Както "Airport" не е "Въздушно пристанище", а е "Летище".
Още по-добър пример е, в случая на термините "continuous - непрекъснат" , "discontinuous - прекъснат". Ние дефинираме на български друго понятие като първично.
след обсъждане с @kunev предлагам(е)
"предпоставка за съревнование"
race е състезание/съревнование. както обясних по-горе. race пояснява condition, което е това, което се случва (виж. Википедия). condition в случая е предпоставка или състояние.
ако вземем предвид и втория превод на condition - състояние предлагам и
"условие на съревнование"
като според мястото където се споменава може да се ползват и двете, в зависимост от това дали се подчертава самото състояние или предпоставката за навлизане в него.
На мен лично никак не ми харесват преводи свързани с състезания и сървенования и надпревари. На български, тези думи имат сравнително тесен смисъл.
Предлагам да вземем един или, по-добре, няколко различни примера за "race condition" и да видим, как най-добре можем да ги опишем на български.
Тъй като в много от случаите (особено когато е интересно да се говори) race condition-ите са проблемни, в случая думата "condition" може да бъде заменена направо с думата "проблем", или даже "грешка".
Та излизат следните нови предложения: "проблематична едновременност", "грешка от/на едновременност" "Грешно съчетание". Ако измислим и по-нашенски превод, за думата "тайминг", може и "Проблемен тайминг", "Спорен тайминг".
Съгласен съм че можем (и сигурно трябва) да правим разлик м/у случаите в които имаме предпоставки, за "race condition" или за проблем, и вече възникнал такъв.
Друг вариант е да измислим наистина хубаво, и точно описание, макар и многословно и да използваме негов акроним.
'Предпоставка' не предполага, че е възникнало състезанието.
Никак не ми харесва настоящите преводи.
Бих превел термините с нещо подобно: Data race - Спорен достъп (до данни, памет) Race condition - недефиниран ред (на операции), неподредени операции, биещи се операции,