STATICALLY TYPED MATRIX IN C++ LANGUAGE

  • Predrag Rakić Fakultet tehničkih nauka Novi Sad
  • Lazar Stričević Fakultet tehničkih nauka Novi Sad
  • Zorica Suvajdžin Rakić Fakultet tehničkih nauka Novi Sad
Кључне речи: tip matrice, statičko tipiziranje, C , templejt meta-programiranje

Сажетак

U savremenim C++ bibliotekama matrice su implementirane kao da su samo tip elementa i broj dimenzija zaista bitne karakteristike, koje čine statički tip matrice. Veličina dimenzija je u ovakvoj implementaciji tretirana kao promenljiva karakteristika, koja se određuje dinamički u vreme izvršavanja. Na ovaj način implementirana matrica predstavlja delimično statički, a delimično dinamički tip. Na jeziku C++ to je dozvoljena i među korisnicima opšte prihvaćena implementacija. I pored toga, ovakav hibridni pristup smatramo neusklađenim sa duhom statički tipiziranog jezika, kakav je C++. Takođe smatramo da je posledica ove neusklađenosti manje ili više primetna neusaglašenost interfejsa i semantike matričnih operacija. U ovom radu predstavljamo implementaciju u kojoj se tip elemenata, broj dimenzija i veličina dimenzija tretiraju ravnopravno i zajedno čine statički tip matrice. Upotrebljivost predloženog pristupa je demonstrirana implementacijom potpuno statički tipiziranih matrica u C++ biblioteci pod imenom Typed Matrix Library (TML). Predstavljanje matrica na ovaj način omogućava verifikaciju korektnosti matričnih operacija u vreme prevođenja i ne unosi usporenje (overhead) u izvršavanje programa. Interfejs ovako implementiranog tipa matrice je sličan interfejsu opšte prihvaćene, hibridne implementacije. Smatramo da upotreba ovde predstavljenog tipa matrice ne zahteva dodatne informacije (bar ne neke kojih programer već nije svestan), a time ni dodatni napor od programera.
Објављено
2019-01-15
Bрој часописа
Секција
Чланци