Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Перевод терминов на русский


Автор: drug007 1.12.2011, 09:00
Изучаю boost::pool и решил для общего развития перевести документацию на русский, http://libs.wikia.com/wiki/Boost.Pool. Встал вопрос о переводе того или иного термина. Например такое предложение:
Forward declarations of all the exposed symbols for this library are in the header made inscope by #include <boost/pool/poolfwd.hpp>.
если перевести буквально:
Опережающие объявления всех доступных из других единиц трансляции (?!) символов библиотеки находятся в заголовочном файле, включаемым с помощью #include <boost/pool/poolfwd.hpp>
Меня смущает слово "опережающие" и перевод терминов exposed и symbol (в данном контексте). Кто что скажет?

Также как лучше перевести the include file guards - страж заголовочного файла?

З.Ы. и ресурс слишком рекламистый, не посоветуете что-либо менее отвлекающее?

Автор: Alexeis 1.12.2011, 09:19
drug007, я бы советовал вместо дословного перевода делать смысловой. Такой текст воспринимается намного лучше.

Цитата(drug007 @  1.12.2011,  10:00 Найти цитируемый пост)
Меня смущает слово "опережающие" и перевод терминов exposed и symbol (в данном контексте). Кто что скажет?

  Опережающее вроде подходит, а вот "всех доступных из других единиц трансляции" мне не понятно даже по русски. exposed, я так понимаю, используется как синоним public .

Автор: boostcoder 1.12.2011, 09:23
Цитата(drug007 @  1.12.2011,  09:00 Найти цитируемый пост)
Опережающие объявления

это лучше не переводить.
к примеру так:
Цитата

Форвард-декларации всех доступных из других единиц трансляции символов библиотеки находятся в заголовочных файлах, включаемых с помощью #include <boost/pool/poolfwd.hpp>


Цитата(drug007 @  1.12.2011,  09:00 Найти цитируемый пост)
Также как лучше перевести the include file guards - страж заголовочного файла?

да.

Цитата(drug007 @  1.12.2011,  09:00 Найти цитируемый пост)
З.Ы. и ресурс слишком рекламистый, не посоветуете что-либо менее отвлекающее?

прям на википедии пиши. не? ;)

Автор: drug007 1.12.2011, 09:25
Согласен на счет смыслового перевода. Но первоначально все равно делаю близко к оригиналу, потом перечитываю и то, что не по-русски переписываю уже своими словами. Кстати, приходится обращать внимание на детали, что помогает самому лучше понять предмет, как в анекдоте - пока вам объяснял, сам уже понял. smile
Да, exposed именно в смысле public, но как это красиво перевести на русский? И symbols тут же не в значении "символ", а в смысле "конструкция", скорее всего.

Надо будет попробовать википедию   smile 

Автор: boostcoder 1.12.2011, 09:29
Цитата(drug007 @  1.12.2011,  09:25 Найти цитируемый пост)
Да, exposed именно в смысле public, но как это красиво перевести на русский?

в переводе, exposed не нужен. это в английском без него предложение разорванное получится.

Цитата(drug007 @  1.12.2011,  09:25 Найти цитируемый пост)
И symbols тут же не в значении "символ", а в смысле "конструкция", скорее всего.

да, конструкция. но лучше оставить символ. в контексте, все равно ничего другого мне в голову не пришло.

Добавлено через 3 минуты и 32 секунды
Цитата(drug007 @  1.12.2011,  09:25 Найти цитируемый пост)
Надо будет попробовать википедию

в поиске вводишь "boost.pool", тебе говорят что такой страницы нет. и там есть красная ссылочка "Создать страницу". имхо, стабильнее и более популярного ресурса для доки не сыскать.

Автор: Alexeis 1.12.2011, 09:37
drug007, боюсь что термин symbols слишком специфичен, в литературе часто так и пишут символ. symbol скорее это символьный идентификатор. Тут используется термин symbol в значении линковочных символов, т.е. языковых конструкций, которые попадают в объектный файл в символьном представлении вместо подстановки адреса. 

Автор: drug007 1.12.2011, 10:26
Тогда сделаю так 'symbol' = "символ".
Что-то вики не дает сохранять изменения - одну страницу сохранил и все. :( Надеюсь это временно.

Хмм... Что-то на вики меня встретили недружелюбно -  статьи пометили как спам. Там можно размещать доки все-таки или нет? Вопрос там этот, конечно , тоже задам.

Что-то с викой не очень дружно получается, но надежды не теряю. По крайней мере перевод делаю и возник такой вопрос (описывается упорядоченный pool, где указатели на свободные блоки памяти хранятся в сортированном по адресам блоков списке):
However, freeing an object can be O(N) in the number of currently free blocks which can be prohibitively expensive in some situations.
Я перевел как:
Тем не менее, освобождение объекта может быть O(N) от текущего числа свободных блоков, которое может быть запредельно дорогим в некоторых ситуациях. 
Вот меня смущает перевод фрагмента "... in the number of currently free blocks..."

Вообще здесь идет обсуждение того факта, что в упорядоченном списке свободных блоков памяти при освобождении объекта и появлении свободного блока, его нужно добавить в список свободных блоков, что может привести к итерации по всему списку этих свободных блоков, что не есть гуд. Или я не прав?

Автор: boostcoder 1.12.2011, 15:08
как спам может быть до проверки админами. и зарегался? дай ссылку.
сам я никогда не создавал записи. дописывал/редактировал. как спам не помечали.

Цитата(drug007 @  1.12.2011,  10:26 Найти цитируемый пост)
Тем не менее, освобождение объекта может быть O(N) от текущего числа свободных блоков, которое может быть запредельно дорогим в некоторых ситуациях.

так?:
Тем не менее, освобождение объекта может иметь сложность O(N) от текущего числа свободных блоков, которое может быть запредельно дорогим в некоторых ситуациях.

Цитата(drug007 @  1.12.2011,  10:26 Найти цитируемый пост)
Или я не прав?

прав.

Автор: UniBomb 1.12.2011, 17:02
Вместо википедии тогда уж лучше использовать http://ru.wikibooks.org/  smile 

Автор: drug007 2.12.2011, 06:38
Цитата(UniBomb @ 1.12.2011,  17:02)
Вместо википедии тогда уж лучше использовать http://ru.wikibooks.org/  smile

Викиучебник мне тоже уже посоветовали на самой вики, но теперь проблема в том, что вики не дает редактировать большие тексты, только буквально 10 предложений. Вчера весь день промучался - при чем эта проблема уже известна на той же вики, но полноценного решения не имеет. Решил пока не потерял запал на перевод заняться самим переводом, а выложить уже потом можно будет.


Цитата(boostcoder @ 1.12.2011,  15:08)
как спам может быть до проверки админами. и зарегался? дай ссылку.
сам я никогда не создавал записи. дописывал/редактировал. как спам не помечали.

Например http://ru.wikipedia.org/wiki/Boost.pool_%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5 - вообще обвинили в нарушении авторских прав. Чьи права я там нарушил?
А вот сам http://ru.wikibooks.org/wiki/Boost.Pool
Но тут все криво, т.к. я еще не очень уверенно работаю в вики + недоступно полноценное редактирование.

Цитата(boostcoder @ 1.12.2011,  15:08)

так?:
Тем не менее, освобождение объекта может иметь сложность O(N) от текущего числа свободных блоков, которое может быть запредельно дорогим в некоторых ситуациях.

Да, сложность как раз нужный термин.


Спасибо за ответы.

Автор: boostcoder 2.12.2011, 13:25
Цитата(drug007 @  2.12.2011,  06:38 Найти цитируемый пост)
Например удаленная статья в вики - вообще обвинили в нарушении авторских прав. Чьи права я там нарушил?

бред какой-то %)
Цитата

перевод несвободной документации


Цитата(drug007 @  2.12.2011,  06:38 Найти цитируемый пост)
А вот сам викиучебник
Но тут все криво

нормально. потом "губы наведешь".

Автор: boostcoder 2.12.2011, 18:19
drug007, пообщался я с модератором Википедии, и он извинился за то что не внимательно прочитал "Boost Software License", и сказал что страница будет восстановлена. Вот только нужно подать заявку админу. Об этом сейчас и треплюсь.

Автор: boostcoder 2.12.2011, 18:35
drug007, в общем, http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%92%D0%A3%D0%A1 описан процесс подачи заявки.

Автор: drug007 4.12.2011, 09:10
Цитата(boostcoder @ 2.12.2011,  18:35)
drug007, в общем, http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%92%D0%A3%D0%A1 описан процесс подачи заявки.

Спасибо за поддержку. Пока восстанавливать не буду - решил сосредоточиться именно на переводе, потому что времени не очень хватает. А там уже посмотрим - может оставить в виде викиучебника, а может на страницу выложить.

Автор: drug007 14.12.2011, 13:55
Подскажите, как правильнее перевести:
1) Simple segregated storage - Хранилище с простым разделением/разбиением? может какой-то соответствующий устоявшийся термин уже есть?

2) Simple segregated storage addresses both of these issues. Almost all memory overhead is done away with, and all allocations can take place in a small amount of (amortized) constant time. - как здесь перевести amortized - я не совсем понял.

Автор: boostcoder 14.12.2011, 14:41
Цитата(drug007 @  14.12.2011,  13:55 Найти цитируемый пост)
Хранилище с простым разделением/разбиением?

разбиением.

Цитата(drug007 @  14.12.2011,  13:55 Найти цитируемый пост)
как здесь перевести amortized - я не совсем понял. 

приближенное/устредненное.

Автор: spyswamp 15.12.2011, 16:45
Ого, вот это надмозг-стайл. smile В мемориз!

Автор: drug007 16.12.2011, 07:35
Цитата(spyswamp @ 15.12.2011,  16:45)
Ого, вот это надмозг-стайл. smile В мемориз!

Ваши варианты?

Автор: boostcoder 31.12.2011, 12:22
http://ru.wikibooks.org/wiki/Boost.Pool

думаю, стОит добавить ссылку на источник.
а вообще, замечательно потрудился! smile 
на википедии страницу восстановить не желаешь?

зы
раскидаю ссылку по известным мне сборникам переводов.

Автор: drug007 10.1.2012, 06:31
Цитата(boostcoder @ 31.12.2011,  12:22)
http://ru.wikibooks.org/wiki/Boost.Pool

думаю, стОит добавить ссылку на источник.
а вообще, замечательно потрудился! smile 
на википедии страницу восстановить не желаешь?

зы
раскидаю ссылку по известным мне сборникам переводов.

Спасибо за оценку и за продвижение ссылки! =)
Правда я еще не закончил - у меня проблемы с редактированием, сохраняет результат редактирования даже не через раз, а через 10. Очень много времени уходит на пустое ожидания сохранения результатов. Поэтому все медленно идет. По той же причине пока не планирую восстанавливать страницу на википедии, хотя по идее это будет просто. Пока планирую завершить викиучебник в ближайшее время (как инет дома появится). 


З.Ы. Если держать и в википедии и в викиучебнике - не будет ли лишнего дублирования?

Автор: boostcoder 10.1.2012, 07:34
Цитата(drug007 @  10.1.2012,  06:31 Найти цитируемый пост)
Если держать и в википедии и в викиучебнике - не будет ли лишнего дублирования?

а хз. об этом тебе модераторы сообщат  smile 

Автор: drug007 16.1.2012, 10:46
Не дают мне забыть про  перевод доки к boost::pool smile и встал у меня такой вопрос - в английском есть два термина alignment и padding. Я термин alignment перевожу как выравнивание блока памяти по адресу, а термин padding перевожу как заполнение, когда блок памяти дополняется пустыми (ничего не значащими) символами, чтобы блок памяти всегда имел определенный фиксированный размер.
Может есть какой-то еще нюанс, что я упустил?

Автор: boostcoder 16.1.2012, 11:25
все правильно.

я там кстати ссылку на буст.пул добавил ;)

Автор: drug007 16.1.2012, 11:27
Цитата(boostcoder @ 16.1.2012,  11:25)
все правильно.

я там кстати ссылку на буст.пул добавил ;)

Ок

там это где? =)

Автор: boostcoder 16.1.2012, 11:43
тут: http://ru.wikibooks.org/wiki/Boost.Pool

Автор: drug007 16.1.2012, 11:59
Цитата(boostcoder @ 16.1.2012,  11:43)
тут: http://ru.wikibooks.org/wiki/Boost.Pool

Тьфу, точно, как не догадался? =) 
Скоро дело вообще "попрет". Вот бы еще какую статистику получить, пользуется ли народ учебником или нет. А еще бы обратную связь получить - ух! А то я сам чувствую иногда, что мало перевода, надо бы живых мыслей добавить. Да на все не замахнешься, а вот на "оживление" каких-то наиболее важных моментов можно было бы.

Автор: Absinthe 16.1.2012, 12:10
Термины лучше не переводить. Так и писать транслитом.
Аббревиатуры НИ В КОЕМ СЛУЧАЕ не переводить. Только зараженный грибами мозг может перевести IDE как ИСР(В книге Программист-прагматик).

Автор: boostcoder 16.1.2012, 12:14
Цитата(Absinthe @  16.1.2012,  12:10 Найти цитируемый пост)
ИСР

 smile 

Автор: drug007 16.1.2012, 12:20
Цитата(Absinthe @ 16.1.2012,  12:10)
Термины лучше не переводить. Так и писать транслитом.
Аббревиатуры НИ В КОЕМ СЛУЧАЕ не переводить. Только зараженный грибами мозг может перевести IDE как ИСР(В книге Программист-прагматик).

Про ИСР - хороший пример, как не надо делать. =)
 Но некоторые термины (как alignment и padding) лучше перевести - мне кажется выравнивание и заполнение понятнее будет алаймента и паддинга. На всякий случай я в скобках оставляю оригинальный термин.

Автор: drug007 23.1.2012, 12:17
Не могу точно перевести следующий текст (сам смысл не 100% понимаю):
Цитата
A new-expression passes the amount of space requested to the allocation function as the first argument of type std::size_t. That argument shall be no less than the size of the object being created; it may be greater than the size of the object being created only if the object is an array. For arrays of char and unsigned char, the difference between the result of the newexpression and the address returned by the allocation function shall be an integral multiple of the most stringent alignment requirement (3.9) of any object type whose size is no greater than the size of the array being created. [Note: Because allocation functions are assumed to return pointers to storage that is appropriately aligned for objects of any type, this constraint on array allocation overhead permits the common idiom of allocating character arrays into which objects of other types will later be placed. ]
 http://www.boost.org/doc/libs/1_48_0/libs/pool/doc/html/boost_pool/pool/pooling.html#boost_pool.pool.pooling.alignment.proof_of_concept__guaranteeing_alignment я перевел так:
New-выражение первым аргументом типа std::size_t  передает функции выделения размер выделяемой памяти. Значение аргумента не должно быть меньше размера создаваемого объекта; значение может быть больше размера создаваемого объекта только если объект является массивом. Для массивов типов char и unsigned char разница(?) между результатом new-выражения и адресом, возвращаемым функцией выделения должна быть целым, кратным(??) наиболее строгим требованиям к выравниванию (3.9) объекта любого типа, чей размер не превышает размер создаваемого массива. [Примечание: В следствии того, что предполагается, что функции выделения возвращают указатели на хранилище, имеющее необходимое выравнивание для объектов любого типа, это ограничение на выделение массивов разрешает использование распространенной идиомы выделения символьных массивов, которые используются для размещения объекты других типов.]

Вот мне самому не понятно, что это за разница и чему она должна быть равна.

Автор: bsa 23.1.2012, 20:34
думаю речь о том, что выделенный массив char должен быть выровнен по самой строгой границе. Т.е. если объекты размером 8 байт должны быть выровнены по границе 64-х битного слова. Т.е. адрес приведенный к int должен делиться без остатка на 8.

Автор: drug007 25.1.2012, 19:35
Цитата(bsa @ 23.1.2012,  20:34)
думаю речь о том, что выделенный массив char должен быть выровнен по самой строгой границе. Т.е. если объекты размером 8 байт должны быть выровнены по границе 64-х битного слова. Т.е. адрес приведенный к int должен делиться без остатка на 8.

Это понятно. Непонятно что за разница имеется в виду между new-выражением и функцией выделения. 
Как следует из стандарта, new-выражение вызывает функцию выделения для непосредственного выделения памяти. При этом new-выражение знает о типе для которого выделяется память, а функция выделения нет. Т.е. возможно, что функция выделения выделит память невыравненную нужным образом и выравнивание должно выполнить new-выражение? Может быть это имеется в виду под разницей? Т.е. new-выражение должно выделить память для типа с выравниванием 8 байт, а функция выделения выделила блок памяти с адреса 0х0ААА4, т.е. выравненный по 4 байтной границе. Тогда new-выражение проигнорирует первые четыре байта и вернет не 0хААА4, а вернет 0хААА8? Может здесь это имеется в виду? 
В пользу моих логических рассуждений еще говорит фраза "...this constraint on array allocation overhead permits the common idiom...", буквально означающая "...это ограничение накладных расходов на выделение массивов позволяет использовать общую идиому..."

Автор: bsa 25.1.2012, 19:50
drug007, в любом случае, malloc возвращает область выровненную по самой строгой границе. Если ты используешь ее, то расслабься.

Автор: drug007 26.1.2012, 04:02
Цитата(bsa @ 25.1.2012,  19:50)
drug007, в любом случае, malloc возвращает область выровненную по самой строгой границе. Если ты используешь ее, то расслабься.

Да я вообще не напрягаюсь. Просто при переводе столкнулся с нюансом и теперь хочу это выяснить - честно говоря, лично я бы и без этого нюанса прожил, но поскольку перевод http://ru.wikibooks.org/wiki/Boost.Pool#.D0.A3.D1.82.D0.B2.D0.B5.D1.80.D0.B6.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5_2:_.D0.9B.D1.8E.D0.B1.D0.BE.D0.B9_.D0.B1.D0.BB.D0.BE.D0.BA_.D0.BF.D0.B0.D0.BC.D1.8F.D1.82.D0.B8.2C_.D0.B2.D1.8B.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.BD.D1.8B.D0.B9_.D0.BA.D0.B0.D0.BA_.D0.BC.D0.B0.D1.81.D1.81.D0.B8.D0.B2_.D1.81.D0.B8.D0.BC.D0.B2.D0.BE.D0.BB.D0.BE.D0.B2_.D1.81_.D0.BF.D0.BE.D0.BC.D0.BE.D1.89.D1.8C.D1.8E_.D0.BE.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.BE.D1.80.D0.B0_new.5B.5D_.28.D0.B7.D0.B4.D0.B5.D1.81.D1.8C_.D0.B8_.D0.B4.D0.B0.D0.BB.D0.B5.D0.B5_-_.D0.B1.D0.BB.D0.BE.D0.BA.29.2C_.D0.B8.D0.BC.D0.B5.D0.B5.D1.82_.D0.BF.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D1.8C.D0.BD.D0.BE.D0.B5_.D0.B2.D1.8B.D1.80.D0.B0.D0.B2.D0.BD.D0.B8.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B4.D0.BB.D1.8F_.D0.BB.D1.8E.D0.B1.D0.BE.D0.B3.D0.BE_.D0.BE.D0.B1.D1.8A.D0.B5.D0.BA.D1.82.D0.B0_.D1.82.D0.B0.D0.BA.D0.BE.D0.B3.D0.BE_.D0.B6.D0.B5_.D0.B8.D0.BB.D0.B8_.D0.BC.D0.B5.D0.BD.D1.8C.D1.88.D0.B5.D0.B3.D0.BE_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.80.D0.B0 для всех, чувствую ответственность, чтобы перевод был правильный, а не абы как.
malloc как раз возвращает память с самым слабым выравниванием, подходящим для объектов любого типа - мы же тип объекта в нее не передаем, а только размер в байтах и она просто не в состоянии выровнять память по какому-либо конкретному типу.

Автор: bsa 26.1.2012, 10:25
Цитата(http://linux.die.net/man/3/malloc)
The malloc() and calloc() functions return a pointer to the allocated memory that is suitably aligned for any kind of variable.

Цитата(C Language Standard)
The pointer returned if the allocation succeeds aligned so that it may be assigned to a pointer to any type of object with a fundamental alignment requirement and then used to access such an object or an array of such objects in the space allocated (until the space is sxplicitly deallocated).

Автор: drug007 26.1.2012, 12:40
bsa, конечно же вы правы, именно строгое выравнивание. 

Вообще, я решил оставить этот вопрос про разницу между результатом new-выражения и результатом функции выделения памяти - буду считать что понял и перевел правильно. А если неправильно - то все равно всем без разницы  smile , я время только зря трачу. А вам, bsa, спасибо за диалог. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)