Feit is dat als je 1 compiler hebt, je je geen zorgen moet maken of je programma's wel bij iedereen op dezelfde manier gaan werken of niet.
Daar kunnen twee dingen aan ten grondslag liggen: (1) een onduidelijke of mogelijk niet eens bestaande standaard voor de taal [Ruby bijvoorbeeld] of (2) dat een bepaalde versie niet voldoet aan de standaard definitie.
Je zult je in geval van low-level talen zoals C (en verwanten) altijd rekening moeten houden met implementatie verschillen; dit zijn hoofdzakelijk verschillen die niet in de taal zijn vast gelegd en men zou het dus onduidelijkheden kunnen noemen. Maar je wilt dit ook niet vastleggen.
Hoeveel CPU's zijn er? Hoeveel cores hebben de cpus? Is de cpu big of little endian? Hoeveel registers zijn er en hoe groot zijn deze? Wat is de word-size (het kleinste hoeveelheid direct adresseerbaar geheugen)? Hoe is het geheugen uiteindelijk ingedeeld? Ook de implementatie van standaard bibliotheken en menig OS details beïnvloeden de run time performance en vaak zelfs het gedrag van een programma.
De keuze van een compiler is in verhouding triviaal eenvoudig te noemen, voor de meeste platformen en talen zijn er maar een paar beschikbaar.
Any sufficiently analyzed magic is indistinguishable from science.
Any sufficiently advanced technology is indistinguishable from magic.
There is no theory of protecting content other than keeping secrets Steve Jobs