Automatic checking of the usage of the C++ move semantics

The C++ programming language is a favorable choice when implementing high performance applications, like real-time and embedded programming, large telecommunication systems, financial simulations, as well as a wide range of other speed sensitive programs. While C++ has all the facilities to handle t...

Teljes leírás

Elmentve itt :
Bibliográfiai részletek
Szerzők: Baráth Áron
Porkoláb Zoltán
Dokumentumtípus: Cikk
Megjelent: 2015
Sorozat:Acta cybernetica 22 No. 1
Kulcsszavak:Számítógép programozás, Programozási nyelv C++
Tárgyszavak:
doi:10.14232/actacyb.22.1.2015.2

Online Access:http://acta.bibl.u-szeged.hu/36173
LEADER 02268nab a2200241 i 4500
001 acta36173
005 20220620093503.0
008 161017s2015 hu o 0|| eng d
022 |a 0324-721X 
024 7 |a 10.14232/actacyb.22.1.2015.2  |2 doi 
040 |a SZTE Egyetemi Kiadványok Repozitórium  |b hun 
041 |a eng 
100 1 |a Baráth Áron 
245 1 0 |a Automatic checking of the usage of the C++ move semantics  |h [elektronikus dokumentum] /  |c  Baráth Áron 
260 |c 2015 
300 |a 5-20 
490 0 |a Acta cybernetica  |v 22 No. 1 
520 3 |a The C++ programming language is a favorable choice when implementing high performance applications, like real-time and embedded programming, large telecommunication systems, financial simulations, as well as a wide range of other speed sensitive programs. While C++ has all the facilities to handle the computer hardware without compromises, the copy based value semantics of assignment is a common source of performance degradation. New language features, like the move semantics were introduced recently to serve an instrument to avoid unnecessary copies. Unfortunately, correct usage of move semantics is not trivial, and unintentional expensive copies of C++ objects - like copying containers instead of using move semantics - may determine the main (worst-case) time characteristics of the programs. In this paper we introduce a new approach of investigating performance bottlenecks for C++ programs, which operates at language source level and targets the move semantics of the C++ programming language. We detect copies occurring in operations marked as move operations, i.e. intended not containing expensive copy actions. Move operations are marked with generalized attributes - a new language feature introduced to C++11 standard. We implemented a tool prototype to detect such copy/move semantic errors in C++ programs. Our prototype is using the open source LLVM/Clang parser infrastructure, therefore highly portable. 
650 4 |a Természettudományok 
650 4 |a Számítás- és információtudomány 
695 |a Számítógép programozás, Programozási nyelv C++ 
700 0 1 |a Porkoláb Zoltán  |e aut 
856 4 0 |u http://acta.bibl.u-szeged.hu/36173/1/actacyb_22_1_2015_2.pdf  |z Dokumentum-elérés