-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GLOBAL_DEFINED_WORDS: 同期に関する操作の2項関係たちを追加 #1360
base: master
Are you sure you want to change the base?
Conversation
af70369
to
026aee8
Compare
C++23仕様から、本件Issueで扱うであろう用語群を列挙しておきます。厳密な仕様説明をしない前提であれば "happens before" = "synchronize with" + "sequenced before" とみなせるので、この3語だけでも十分かもしれません。
以下は芋づる式に登場する2項関係:
|
sequenced before は cpprefjp で既に使われていますね…
他の ~ before と carries a dependency は cpprefjp で使われている (or 将来使われることはある) でしょうか。 GLOBAL_DEFINED_WORDS は (現状) 自動マークアップ用なので cpprefjp で使われないものを頑張って登録する必要もないといえばない (とはいえ、将来的に用語集ページを生成するのに使うのであればユーザー目線で知っておくと良さそうなものについては今から入れておいても良い) ような気がします。 sequenced before 繋がりで他にも色々の sequenced の変種があったような…
|
参考情報として、他プログラミング言語や他サイトでの "happens before" 訳出例を拾ってみました。 ちなみに、自分が同単語を扱うときは "訳さない" という選択をとっています。どうしても専門用語ぽさのない動詞句になるため、いっそ原単語のままとして目立たせておこう、という心情ですね。 Javaライブラリドキュメントhttps://docs.oracle.com/javase/jp/8/docs/api/java/util/concurrent/package-summary.html
Java言語規定https://thinkit.co.jp/cert/article/0711/5/3/2.htm
http://www.y-adagio.com/public/standards/tr_javalang2/memory.doc.html#28920 (相当古い仕様のようで対応原文不明)
Go言語ドキュメントhttp://go.shibu.jp/go_mem.html
https://go-review.googlesource.com/c/go/+/381315/9/doc/go_mem.html Go1.19での改定前バージョン
|
@@ -114,5 +114,17 @@ | |||
}, | |||
"オーバーロード解決": { | |||
"desc": "関数呼び出し時に、同名の関数の中から実際に呼び出す関数を決定する処理。このときの候補になることを、オーバーロード解決に参加するという" | |||
}, | |||
"と同期する": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これだと と同期しない
という活用のときにマークアップが適用されませんね…
やはり新しく単語を作るか "synchronize with 関係" みたいに英語を保持するか。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
当該関数の仕様は "Synchronization: None" となっており、これを意訳したようです。
上記については書き換えてしまえば「同期しない」という否定系は避けられるとは思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
最終的に synchronizes with =「と同期する」で行くのか分かりませんが、取り敢えず f2ae0d6
「処理系(標準ライブラリ)に対する『他の操作と同期しなければならない』という要求はないが、処理系がやりたければ勝手に同期的に動作しても良い」という理解はあっていますか。元の表現だと「処理系は同期してはいけない」というのが規格の要件のようにも読めるので、こういう修正にしました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"A は B と同期する" という表現だと対称律が成立していそうでよくないなという気がして来ました (「『A は B と同期する』⇔『B は A と同期する』」と勘違いしそう)。例えば "に対して同期する" みたいな方向性のある表現の方が良いのでは。
Edit:
関連する懸念として "synchronizes with 関係" などの語を導入する場合にも、方向性を表現しにくいという問題がある気がします。"A と B は synchronizes with 関係にある" や "A は B と synchronizes with 関係にある" だとよくない。これも "A は B に対して synchronizes with 関係にある" などのようにすれば良いでしょうか。
あと "A は B に対して happens before 関係" や "A は B に対して synchronizes with 関係" などの表現は、"より前に発生する" や "に対して同期する" と比べると余り直感的でなく意味を捉えにくいかも、と思いました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここで出てきている語の前提知識ほぼない状態で印象論でコメントしておくと、やはり「同期する」とか「関係にある」だと、交換法則が成り立つイメージがどうしてもある気がしています。Golangの訳はそれと比べてわかりやすい気がします。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
「処理系(標準ライブラリ)に対する『他の操作と同期しなければならない』という要求はないが、処理系がやりたければ勝手に同期的に動作しても良い」という理解はあっていますか。
元の表現だと「処理系は同期してはいけない」というのが規格の要件のようにも読めるので、こういう修正にしました。
うーん... 自信をもった回答ではありませんが、下記ニュアンスなのかなと思います。cpprefjpとしては B の意図が誤解なく伝われば十分ですから、修正後の文面 「特に他操作と同期する規定はない」 には賛同です。
- A: 標準ライブラリ実装者向け:同期的な動作として実装することは否定されない。ただし、その必要性もないしパフォーマンス低下につながるため推奨しない。
- B: 利用者(プログラマ)向け:API仕様として同期的な操作を期待してはいけない=スレッド間同期に使うな。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@akinomyoga : "A は B と同期する" という表現だと対称律が成立していそうでよくないなという気がして来ました (「『A は B と同期する』⇔『B は A と同期する』」と勘違いしそう)。
@yumetodo : やはり「同期する」とか「関係にある」だと、交換法則が成り立つイメージがどうしてもある気がしています。
お二人ともご指摘されるように、「A は B と同期する」では対称性あり/交換可能と誤解されるリスクはあると思います。ただこれは原語 A synchronizes with B 時点でも同じニュアンスを持つ気がしており、形式的定義の難解さによるものかなと半ばあきらめています...
挙げられている「A は B に対して同期する」は「~と同期する」よりも方向を持つニュアンスがある感じがするので、よい訳語かもしれませんね。
c031993
to
163ac01
Compare
取り敢えず暫定的に作っておきます。実際の変更は、全く違う形もアリだと思っています (例えば無理に日本語にするのはやめて happens before, strongly happens before, synchronizes with, etc. で通すなど)。あと説明はもっとちゃんとしたものがあれば提案していただければ幸いです。
#1359 (comment) by @yohhoy
...
#1359 (comment) by @akinomyoga