Sembra eminentemente possibile creare un sistema di tipi che categorizzi le caratteristiche delle prestazioni di tipi (ad esempio "veloce / lento per accesso seriale", veloce / lento per accesso casuale "," efficiente memoria / inefficiente Tali tratti potrebbero essere tipi astratti inseriti nella gerarchia in modo tale che i tipi più concreti vengano ereditati da essi. Tuttavia, le prestazioni di qualsiasi programma che utilizza tali tipi dipenderebbero dal modo in cui vengono effettivamente utilizzati / utilizzati. digitare il sistema per fare affermazioni sul programma stesso, l'uso di (accesso a) quei tipi dovrebbero essere rappresentati come tipi.Questo significherebbe rinunciare all'uso di strutture di controllo integrate (ad esempio per / while loop) e invece usare tipi Quindi, la gerarchia potrebbe avere un tipo di accesso seriale e un elenco discendente di tipo seriale-accesso, tipi di accesso seriale-albero e così via. L'efficienza di utilizzo potrebbe quindi essere almeno in parte espressa dalla combinazione e applicazione di questi tipi a ciascuno altro.
In un linguaggio funzionale come Haskell - che comunque non ha quasi nessuna struttura di controllo - questo mi sembra abbastanza pratico e applicabile. In Java, tuttavia, un tale sistema sembra molto meno realizzabile (non so molto dall'implementazione a partire dall'applicabilità / attendibilità del risultato).
Haskell ci consente già di stabilire in modo definitivo quanta parte di un programma è pura e fornisce modi per limitare particolari attività all'interno di scatole sigillate. Dal momento che parallelismo / concorrenza in Haskell è implementato attraverso il sistema dei tipi , si potrebbe sostenere che è già parte del modo in cui ciò che vuoi). Al contrario, i linguaggi imperativi (anche quelli tipizzati staticamente come Java) offrono al programmatore molti, molti modi per sovvertire qualsiasi tentativo.