Citat:
Ursprungligen postat av
lillkarsk
Tror jag har stött på frågan om a^b^c betyder (a^b)^c eller a^(b^c) max 3 gånger under min långa intensiva karriär och har inte lagt regeln på minnet. Det viktiga är att det finns i programspråkets dokumentation. Annars är det ganska lätt att prova.
Du har rätt att i om (a^b)^c naturligt uppkommer betydligt oftare än a^(b^c) så sparar man 2 bytes i programkoden på att skriva a^b^c istället för (a^b)^c om det är den konvention programspråket använder. Maskinkoden blir väl likadan oavsett. Men visst om du ska spara programkoden på en magnetremsa från 1971 så sparar du ett par ören.
Maskinkoden blir lika ja. Fast i ett interpreterande språk som basic så är det även en prestandavinst.
Men sen vet jag ju inte om det verkligen fanns en motivering till att associativiteten blev som den blev. Det kan ju vara så enkelt att de behövde välja och bara tog något. Dock vet jag att liknande beslut har tagits historiskt för att spara minne. Och det har inte främst med just lagringen på magnetremsa att göra, utan helt enkelt hur mycket koden tar upp i minnet vid kompilering. Den dator som var det främsta målet för språket C var en PDP-7 som hade ca 9kB minne. Varje byte räknades.
(Som referens kan nämnas att det här inlägget tar upp 1360 bytes, dvs 15% av minnet i en PDP-7)