{{htmlmetatags>metatag-robots=()
metatag-title=(Sviluppare rapidamente software efficiente con la libreria MIDRES)
metatag-keywords=(Optimization,MIDRES,design,isomorphis)
metatag-description=(La libreria MIDRES è pensata per poter sviluppare software in maniera efficiente una volta sola e vederlo funzionare, sempre in maniera efficiente, su varie piattaforme 8 bit in modo ottimizzato.)
metatag-media-og:image=(::midres-logo-fb.png)
metatag-og:title=(Sviluppare rapidamente software efficiente con la libreria MIDRES)
metatag-og:description=(La libreria MIDRES è pensata per poter sviluppare software in maniera efficiente una volta sola e vederlo funzionare, sempre in maniera efficiente, su varie piattaforme 8 bit in modo ottimizzato.)
}}
====== DEFINIRE L'ISOMORFISMO ======
Bene, ma nel dettaglio... **cos'è l'isomorfismo?**
La cosa più facile è partire indicando ciò che non è, cioè definendolo attraverso una serie di negazioni:
* non è sinonimo di "stessa interfaccia";
* non significa (solo) usare lo stesso codice;
* non significa (solo) usare strutture dati senza mediazione;
* soprattutto... non è un proiettile magico!
Prendo in prestito le parole di Douglas Hofstadter:
//« Si parla di isomorfismo quando due strutture complesse si possono applicare l'una sull'altra, cioè far corrispondere l'una all'altra, in modo tale che per ogni parte di una delle strutture ci sia una parte corrispondente nell'altra struttura; in questo contesto diciamo che due parti sono corrispondenti se hanno un ruolo simile nelle rispettive strutture. »//
{{ :midres_library:isomorphism:plus4_blockschaltbild.png?nolink |}}
I computer sono strutture complesse, composte da parti che interagiscono. I computer di marche e modelli diversi sono spesso complessi ma formati da parti che svolgono, grossomodo, la medesima funzione.
Se si riuscisse a far "corrispondere" una parte di un computer alla parte omologa dell'altro, cioè se ciò che viene compilato potesse aderire, **nel modo migliore**, ad ogni combinazione di hardware supportata, si avrebbe che un software scritto per un computer sarebbe ricompilabile simultaneamente sugli altri, con minime perdite a livello di performances.
Vai alla pagina [[:it:midres_library:isomorphism:abstractions|ASTRAZIONI O... DISTRAZIONI?]].
[[:it:midres_library:isomorphism|{{ :midres-logo.png?nolink&600 |}}]]