{{htmlmetatags>metatag-robots=() metatag-title=(Altre caratteristiche della libreria MIDRES) metatag-keywords=(Optimization,MIDRES,design,isomorphis) metatag-description=(In questa pagina descriviamo le altre caratteristiche peculiari della libreria MIDRES.) metatag-media-og:image=(::midres-logo-fb.png) metatag-og:title=(Altre caratteristiche della libreria MIDRES) metatag-og:description=(In questa pagina descriviamo le altre caratteristiche peculiari della libreria MIDRES.) }} ====== ALTRE CARATTERISTICHE DELLA LIBRERIA MIDRES ====== Per illustrare le altre caratteristiche della libreria, pensiamo a questa affermazione: un codice che si adatta da solo a cose diverse non implica una astrazione. Per esempio, TUTTI i miei giochi si riorganizzano come area di gioco a seconda della superficie del monitor. Questo adattamento avviene al momento della compilazione, non al momento dell'esecuzione. {{ youtube>5TbPe9r3_qU?medium }} Per esempio, nel gioco [[:it:elevator|"The Elevator"]] vi sono tanti piani quanti ne lascia disponibili l'area disegnabile. Nella versione per VIC-20 vi sono meno piani che nella versione per C=64. La [[:it:midres_library|libreria MIDRES]], di suo, non pone alcun vincolo sulla larghezza e sull'altezza: detto in termini diversi, il programmatore che usa [[:it:midres_library|libreria MIDRES]] non ha bisogno di restare (chessò) su uno schermo da 40x25 caratteri "virtuale", che poi viene ridotto o allargato a seconda dell'hardware reale; oppure non deve pensare in termini di "dimensioni possibili" a botte di ''#ifdef...#endif''. Per questo si può affermare che non vi sia alcuna astrazione perché, per quanto diverse siano le implementazioni dei computer, il concetto di "schermo" come "una superficie rettangolare" non è una astrazione ma è un dato di fatto. {{ :midres_library:isomorphism:totto_msx.jpg?nolink&400 |}} **Nella [[:it:midres_library|libreria MIDRES]] non è necessario differenziare l'inizializzazione della grafica** a seconda delle "performance" dello stesso. Per esempio, se ha i colori o se non li ha. {{ :midres_library:isomorphism:clock_pulses_and_timing_levels.png?nolink&400 |}} **C'è la possibilità di sincronizzare la velocità di esecuzione secondo un meccanismo esterno**, senza introdurre fattori di rallentamento programmatici e/o empirici. Questo permette di scrivere un gioco su un computer con un processore lento e farlo funzionare perfettamente su un computer con un processore veloce. Senza impazzire andando per "tentativi" o costringendo a rivedere la logica algoritmica per ogni target. \adsense\ {{ :tutorial_protothread_image.jpg?nolink&400 |}} **Esiste, di norma, una sola configurazione per ogni piattaforma.** Non ha alcun senso, dal punto di vista del progetto della [[:it:midres_library|libreria MIDRES]], che esistano 10 possibilità tra cui scegliere. Una sola è quella efficiente e quella va scelta. Efficiente, in questo contesto, vuol dire scritta in modo che le prestazioni siano accettabili sulla piattaforma di riferimento e rimangano identiche se la si cambia, a prescindere da quale sarà quella di destinazione, e senza fine tuning. Vai alla pagina [[:it:midres_library:isomorphism:conclusions|CONCLUSIONI E PREVISIONI]] [[:it:midres_library:isomorphism|{{ :midres-logo.png?nolink&600 |}}]]