Terminologi i gcc..?

Göran Uddeborg goeran at uddeborg.se
Sön Jan 8 11:52:46 CET 2017


Sebastian Rasmussen:
> Då såg jag att du omväxlande använder utvärdera respektive beräkna
> vid översättning av engelskans evaluate. Personligen kan jag tycka att
> utvärdera är en bättre översättning då jag tycker att compute och beräkna
> ligger närmre varandra. Håller du med? Och i så fall, har du lust att
> uppdatera gcc-översättningen?
> 
> msgid "self-comparison always evaluates to true"
> msgstr "självjämförelse beräknas alltid till sant"
> 
> msgid "Percentage penalty the recursive functions will receive when they are
> evaluated for cloning.."
> msgstr "Procentuellt straff de rekursiva funktionerna kommer få när de
> utvärderas för kloning."

Jag har inte medvetet tänkt på detta.  Men i de exempel du ger kan jag
förklara varför min intuition har lett mig till olika val.

För mig beskriver ordet "beräkna" en, åtminstone i princip, ganska
mekanisk process.  Man har någon form av uttryck och gör några
beräkningssteg så att man får fram ett slutresultat.

Ordet "utvärdera" däremot innebär för mig även ett ställningstagande;
en bedömning av något slag.  En eller flera beräkningar kan vara en
del av en utvärdering, men det måste även till någon form av avgörande
baserat på beräkningens slutresultat för att jag skall kalla det en
utvärdering.

I programspråkssammanhang används på engelska ofta "evaluate" för att
beskriva det som kompilatorn lägger ut kod för att göra när den kommer
till en sats med någon form av uttryck att beräkna.  Den användningen
av "evaluate" skulle jag tycka det lät väldigt konstigt att översätta
med "utvärdera".  Den utlagda koden gör inte någon bedömning av
resultatet av beräkningen.  Den beräknar bara resultatet av uttrycket
enligt programspråkets regler.  Det första av meddelandena du gav som
exempel ovan är ett exempel på en sådan användning av "evaluate".

Det andra meddelandet handlar däremot om en annan slags "evaluate".
Där är inte fokus på att man gör en beräkning av ett uttryck.  Det
handlar om en process där kompilatorn gör en bedömning av huruvida en
funktion bör klonas eller inte.  Det är för mig inte bara en
värdeberäkning man talar om, det är ett beslut som skall tas.

På lägre nivå implementeras detta beslut naturligtvis som en beräkning
av ett antal uttryck och ett antal olika beslut i villkorssatser och
dylikt i koden.  Det finns ingen mänsklig bedömning med, bortsett då
från vilka straffsatser man sätter och liknande.  Men den "evaluation"
man talar om är något större än en ren uttrycksberäkning.

Det går att diskutera om orden "beräkna" respektive "utvärdera" är de
ideala.  "Beräkna" känns för mig ganska etablerat i ovanstående
mening, "utvärdera" är mer mitt eget val.  Men framför allt är det för
mig två olika slags "evaluate", och jag tycker inte något av orden
fångar båda innebörderna.  Så jag vill nog faktiskt ha olika
översättningar.

Det kan säkert finnas fall där jag inte följt mitt resonemang.  De
fallen rättar jag gärna om någon hittar dem.  (Jag håller just på och
jobbar mig igenom nästa uppdatering av gcc, så det skulle passa extra
bra just nu att få reda på det.)

Det är hur jag tänker.  Hur ser du på saken?


More information about the tp-sv mailing list