Strumenti Utente

Strumenti Sito


it:midres_library:isomorphism:mydevkit
Traduzioni di questa pagina:


"IL MIO DEV-KIT E' DIFFERENTE"

L'approccio isomorfo è differente da quello delle astrazioni. Si basa sul fatto di mappare l'hardware sottostante senza far uso di librerie terze e facendo corrispondere tra loro strutture complesse ed eterogenee, seppur omologhe.

Il codice scritto con questo approccio, quando funziona bene cioè quando è soddisfacente come velocità di esecuzione o uso delle risorse, è già ottimizzato su qualsiasi altra piattaforma.

Ad esempio, vediamo come il programmatore può scrivere sullo schermo visibile. MIDRES espone molte funzioni per il disegno. Tutte si riferiscono, direttamente o indirettamente, alle “tile”. Le tile sono le unità di base del disegno e sono disponibili ovunque, in gran numero.

Il modo più semplice è usare la funzione mr_puttile 1):

  mr_puttilev(fireX, fireY, TILE_LASER, MR_COLOR_YELLOW);

Come è possibile notare, questa chiamata disegna un raggio laser (TILE_LASER) giallo (MR_COLOR_YELLOW) nella posizione (fireX, fireY). Qui la versione utilizzata è quella con il suffisso v, per indicare che deve essere disegnata sullo schermo visibile.

Cosa significa TILE_LASER? Nulla, è un mero segnaposto. La libreria MIDRES lo passerà “così com'è” all'hardware sottostante. Proprio come accadrà con il colore.

Ok ma chi definisce questo simbolo? A quale grafica sarà associato?

Questo è un problema della libreria MIDRES, che deve trovare un modo per “abbinare” ciò che il programmatore richiede con ciò che è disponibile, in termini di risorse. In altri termini, il cambio di piattaforma si può ridurre a una corrispondenza tra parti omologhe (che si comportano, in genere, in modo simile a livello di performance).

E' chiaro che ciò è possibile solo se la libreria è isomorfa perché, se non lo fosse, non sarebbe neanche possibile scrivere programmi WORA perché (banalmente) la logica con cui è scritto il programma non sarà legata al modo in cui il computer target funziona ma a come l'astrazione funziona (in questo caso, la libreria MIDRES).

In tal caso l'efficienza dipenderà da come il programmatore si muove “secondo le venature del legno”, quindi diventa un WORFILLI (Write Once Run Fine If Library Likes It).

Vai alla pagina L'ASTRAZIONE CHE NON C'E'