Tłumaczenie override method, shadow, hide, etc

Jaki są poprawne tłumaczenia?
override method = nadpisywać metodę, shadow = przesłaniać, hide = ukrywać
80%
80% [4]
override method = nadpisywać metodę, shadow / hide = przesłaniać (tzn bez rozróżniania)
0%
0% [0]
coś innego (napisz w odpowiedzi)
20%
20% [1]
Odpowiedz Nowy wątek
2019-12-02 13:20
1

Myślałem, że tłumaczenie tych słów w kontekście programowania jest jednoznaczne, ale po dyskusji z @somekind wychodzi na to, że nie. Wynurzyłem się ze sprawdzaniem słowników, ale to było przedwczesne, bo słowniki polsko-angielskie często podają wiele tłumaczeń (kilka, czy nawet kilkanaście) dla jednego hasła i w ten sposób można nagiąć tłumaczenie w każdą stronę. Tymczasem w IT potrzebna jest precyzja, więc jeśli ktoś używa słowa "przesłanianie" to powinno to być jednoznaczne.

Tłumaczenie "method overriding" na "nadpisywanie metod" jest np w https://pl.wikipedia.org/wiki/Nadpisywanie_metod i https://pl.wikibooks.org/wiki/C%2B%2B/Funkcje_wirtualne .
Strony https://pl.wikipedia.org/wiki/Przes%C5%82anianie i https://en.wikipedia.org/wiki/Variable_shadowing są w Wikipedii połączone jako wersje językowe, więc to wskazuja na to, że "przesłanianie" to "variable shadowing".
Artykuł https://dzone.com/articles/va[...]-shadowing-and-hiding-in-java jest o tyle fajny, że pokazuje naraz wszystkie 3 rzeczy (method overriding, variable shadowing i variable hiding) i pokazuje między nimi różnice. Jedną z różnic jest to, że nadpisywanie wymaga zgodności sygnatur (metody muszą być override compatible), natomiast przesłanianie czy ukrywanie może wiązać się z zupełną zmianą typu.

Jeśli chodzi o Javę to:

  • przesłonięte (variable shadowing) czy ukryte (variable hiding) pola można odsłonić / odkryć bez uciekania się do refleksji (refleksją można zrobić bardzo dużo rzeczy, więc takie zabawy się nie liczą)
    • odsłanianie jest proste, np w Javowym idiomie z konstruktora this.cośtam = cośtam użyłem this. by odsłonić pole cośtam z obiektu, bo jest zasłonięte parametrem cośtam z konstruktora
    • odkrywanie też jest proste. Jeśli mam class Parent { String x; } oraz class Child extends Parent { int x; } oraz referencję Child ref = ... to mogę zrobić np ((Parent) ref).x = "" + ref.x
  • nadpisywanie metody z klasy Parent w klasie Child oznacza, że do nie mogę na obiekcie klasy Child odpalić implementacji tej metody z klasy Parent. Nie da się w miejscu wywołania metody na obiekcie odwrócić nadpisania.

Jak tłumaczycie te pojęcia sami i z jakimi tłumaczeniami się spotykacie?


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2019-12-03 13:38
0
cs napisał(a):

Gdzieś czytałem, że termin overloading, jest błędnie tłumaczony na przeciążanie a powinien na przeładowanie. z tym, że nie w znaczeniu podobnym do przeciążania, ale w sensie jak przeładowanie np. karabinu czy działa.

Przeładanie karabinu brzmiałoby po angielsku raczej reload, a nie overload. Przeszukałem definicje słowa overload i wszędzie chodzi o zbyt duże obciążenie:

Google Translate:

  • load with too great a burden or cargo.
  • an excessive load or amount.

https://dictionary.cambridge.org/dictionary/english/overload

  • to put too many things in or on something
  • to put too much electricity through an electrical system
  • to give someone more work or problems than they can deal with

https://www.merriam-webster.com/dictionary/overload

  • to load (something or someone) to excess

https://www.collinsdictionary.com/dictionary/english/overload

  • If you overload something such as a vehicle, you put more things or people into it than it was designed to carry.
  • To overload someone with work, problems, or information means to give them more work, problems, or information than they can cope with.
  • If you overload an electrical system, you cause too much electricity to flow through it, and so damage it.

https://www.dictionary.com/browse/overload

  • to load to excess; overburden:

https://www.vocabulary.com/dictionary/overload

  • To overload is to load an excessive amount in or on something, such as an overload of electricity which shorts out the circuits. Overloading causes a "Too much!" situation.

"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2019-12-03 14:32
cs
0

@Wibowit: tak, masz rację, takie definicje słowniki podają, tylko co siedziało w głowie temu, kto ten termin wprowadził?
Znalazłem: tutaj, to Grębosz dziwił się temu tłumaczeniu, powoływał się jak ten termin tłumaczono w innych językach:

Pisząc w Niemczech tę książkę nie wiedziałem, że pewien polski autor, przetłumaczył termin overloaded – na polski jako przeciążony. […] Warto dodać, że na niemiecki przetłumaczono ten termin jako überladen (przeładować), a nie überlasten (przeciążyć), we francuskim przetłumaczono na recharger (naładować od nowa), na włoski – sovraccaricare, a słowo to nie oznacza wcale czegoś, co jest ciężkie. […] Te fakty potwierdzają słuszność tłumaczenia przeładować.

— Jerzy Grębosz, Symfonia C++ Standard[1]
'

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0