{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,5,30]],"date-time":"2023-05-30T04:09:31Z","timestamp":1685419771290},"reference-count":0,"publisher":"National Library of Serbia","issue":"4","license":[{"start":{"date-parts":[[2013,1,1]],"date-time":"2013-01-01T00:00:00Z","timestamp":1356998400000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["ComSIS","COMPUT SCI INF SYST","COMPUT SCI INFORM SY","COMPUTER SCI INFORM","COMSIS J"],"published-print":{"date-parts":[[2013]]},"abstract":"<jats:p>The contemporary software systems written in C face maintainability issues\n   because of tight coupling. Introducing object orientation can address these\n   problems by raising the abstraction to objects, thereby providing better\n   programmability and understandability. However, compiling a C software with a\n   C++ compiler is difficult because of the incompatibilities between C and C++.\n   Some of the incompatibilities such as designated initializers are nontrivial\n   in nature and hence are very difficult to handle by automation such as\n   scripting or by manual efforts. Moreover, runtime support for features such\n   as global constructors, exception handling, runtime type inference, etc. is\n   also required in the target system. Clearly, the traditional procedural\n   language compiler cannot provide these features. In this paper, we propose\n   extending programming language such as C++ to support object orientation in\n   legacy systems instead of completely redesigning them. With a case study of\n   Linux kernel, we report major issues in providing the compile and runtime\n   support for C++ in legacy systems, and provide a solution to these issues.\n   Our approach paves the way for converting a large C based software into C++.\n   The experiments demonstrate that the proposed extension saves significant\n   manual efforts with very little change in the g++ compiler. In addition, the\n   performance study considers other legacy systems written in C and shows that\n   the overhead resulting from the modifications in the compiler is negligible\n   in comparison to the functionality achieved.<\/jats:p>","DOI":"10.2298\/csis130115070m","type":"journal-article","created":{"date-parts":[[2013,9,30]],"date-time":"2013-09-30T10:45:36Z","timestamp":1380537936000},"page":"1661-1672","source":"Crossref","is-referenced-by-count":0,"title":["Extending programming language to support object orientation in legacy systems"],"prefix":"10.2298","volume":"10","author":[{"given":"Hemang","family":"Mehta","sequence":"first","affiliation":[{"name":"Department of Computer Science and Engineering, Indian Institute of Technology Madras, Chennai, India"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"S.J.","family":"Balaji","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Engineering, Indian Institute of Technology Madras, Chennai, India"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dharanipragada","family":"Janakiram","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Engineering, Indian Institute of Technology Madras, Chennai, India"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1078","container-title":["Computer Science and Information Systems"],"original-title":[],"language":"en","deposited":{"date-parts":[[2023,5,29]],"date-time":"2023-05-29T08:31:15Z","timestamp":1685349075000},"score":1,"resource":{"primary":{"URL":"https:\/\/doiserbia.nb.rs\/Article.aspx?ID=1820-02141300070M"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013]]},"references-count":0,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2013]]}},"URL":"https:\/\/doi.org\/10.2298\/csis130115070m","relation":{},"ISSN":["1820-0214","2406-1018"],"issn-type":[{"value":"1820-0214","type":"print"},{"value":"2406-1018","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013]]}}}