Del problema del porting su varie piattaforme si occupano, di norma, le astrazioni. L'astrazione altro non fa che dare per scontata l'esistenza di un computer immaginario, un computer astratto appunto. Lo modella e ne descrive le operazioni. Poi tale computer viene “calato” in quello reale e fatto corrispondere.
Questo approccio ha sicuramente il vantaggio di rendere il programmatore indifferente alle modifiche dell'hardware e spesso tali astrazioni si appoggiano su librerie scritte in assembly molto ottimizzato.
Tuttavia, essendo librerie generiche, sono efficienti tanto quanto è coerente l'uso che se ne fa con ciò per cui sono state pensate. Se il programma che usa le librerie non lavora con lo stesso “verso” con cui sono state ottimizzate le librerie, il risultato è di sicuro peggiore dell'approccio isomorfo.
Questo è quasi inevitabile se gli autori delle librerie e dei programmi sono diversi. Prendete la scrittura di un singolo “tile” sullo schermo. In tal caso le ottimizzazioni sono sprecate perché l'operazione è elementare e non può essere ulteriormente semplificata.
Gli isomorfismi non possono (co)esistere con una astrazione e non hanno limite di applicabilità in base all'hardware che c'è sotto.
Vai alla pagina NON ISOMORFISMO DELLE LIBRERIE ESISTENTI.