Gonzalez, Fabian and Suter, Toni (2013) Pointerminator. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of Pointerminator_eprints.pdf]
Pointerminator_eprints.pdf - Supplemental Material

Download (879kB) | Preview


Pointers and Arrays as inherited from C are still in heavy use in C++ programs. They are used to represent strings, arrays, objects on the heap or they appear in function signatures to do call-by-reference. However, issues like resource responsibility, degradation of an array to a pointer loosing its dimension or zero termination of byte sequences lead to poor quality and potential security problems. Modern C++ and its standard library provide a lot of functionality to avoid the use of raw pointers and arrays. If those concepts are applied correctly, they can lead to much better and more maintainable code. The goal of our term project is to write a plug-in for Eclipse CDT that allows a programmer to find and automatically refactor pieces of code, that use pointers in an unfavourable way. We started with an analysis of the various roles pointers can have. Based on that analysis we decided that the plug-in should be able to refactor C strings, C arrays and pointer parameters. Then we implemented the plug-in and documented its architecture. Finally, we tested the plug-in in the code base of an existing C++ application called fish shell. The results of these tests allowed us to optimize the plug-in and to fix some of the problems that we discovered during testing.

Item Type: Thesis (Student Research Project)
Subjects: Topics > Software > Refactoring
Area of Application > Development Tools
Area of Application > Academic and Education
Technologies > Programming Languages > Java
Technologies > Programming Languages > C++
Technologies > Frameworks and Libraries > Eclipse
Metatags > IFS (Institute for Software)
Divisions: Bachelor of Science FHO in Informatik > Student Research Project
Depositing User: OST Deposit User
Thesis advisor
Sommerlad, Peter
Date Deposited: 23 Apr 2014 13:52
Last Modified: 23 Apr 2014 13:52
URI: https://eprints.ost.ch/id/eprint/350

Actions (login required)

View Item
View Item