Tampaknya sangat mungkin untuk membuat sistem tipe yang mengategorikan karakteristik kinerja tipe(misalnya "cepat / lambat untuk akses serial," cepat / lambat untuk akses acak "," memori efisien / tidak efisien "). Ciri-ciri tersebut dapat berupa tipe abstrak yang ditempatkan ke dalam hierarki sedemikian rupa sehingga semakin banyak jenis konkret yang diwarisi darinya. Namun, kinerja setiap program yang menggunakan tipe-tipe itu akan tergantung pada cara mereka sebenarnya digunakan / diakses.Untuk tipe sistem untuk membuat pernyataan tentang program itu sendiri, penggunaan (akses ke) tipe-tipe itu sendiri akan direpresentasikan sebagai tipe Ini berarti menghentikan penggunaan struktur kontrol built-in (misalnya untuk / sementara loop) dan alih-alih menggunakan tipe yang mengimplementasikannya. Oleh karena itu hirarki dapat memiliki tipe akses serial abstrak dan turunan daftar-akses-serial, tree-serial jenis -access dan sebagainya.Efisiensi penggunaan mungkin kemudian setidaknya sebagian dinyatakan oleh kombinasi dan penerapan jenis-jenis ini satu sama lain.
Dalam bahasa fungsional seperti Haskell - yang hampir tidak memiliki struktur kontrol - ini bagi saya cukup praktis dan dapat ditegakkan. Di Jawa, bagaimanapun, sistem seperti tampaknya jauh lebih sedikit dicapai (tidak begitu banyak dari pelaksanaan sejak keberlakuan / kepercayaan dari hasil).
Haskell sudah memungkinkan kita untuk menyatakan secara pasti seberapa besar suatu program murni dan menyediakan cara untuk membatasi kegiatan tertentu dalam kotak tertutup. Karena paralelisme / konkurensi di Haskell diimplementasikan melalui sistem tipe , dapat dikatakan bahwa itu sudah menjadi bagian dari perjalanan ke sana (dengan apa yang Anda inginkan). Sebaliknya, bahasa imperatif (bahkan yang diketik secara statis seperti Java) menawarkan banyak cara bagi para pembuat kode untuk menumbangkan upaya ini.
if condition then expensive_operation else cheap_operation
?