148 research outputs found

    A short introduction to the aims and status of modern C++

    Get PDF
    C++20 is here. How does it reflect the aims and ideals of C++? What are the major features of C++20? What is in the works for future standards? I will - necessarily briefly - touch upon type-safety, resource-safety, type deduction, modularity, and concurrency. After this introduction, the second half of the presentation will be a question and answer session

    Improving performance and maintainability through refactoring in C++11

    Get PDF
    Abstraction based programming has been traditionally seen as an approach that improves software quality at the cost of losing performance. In this paper, we explore the cost of abstraction by transforming the PARSEC benchmark uidanimate application from low-level, hand-optimized C to a higher-level and more general C++ version that is a more direct representation of the algorithms. We eliminate global variables and constants, use vectors of a user-de ned particle type rather than vectors of built-in types, and separate the concurrency model from the application model. The result is a C++ program that is smaller, less complex, and measurably faster than the original. The benchmark was chosen to be representative of many applications and our transformations are systematic and based on principles. Consequently, our techniques can be used to improve the performance, exibility, and maintainability of a large class of programs. The handling of concurrency issues has been collected into a small new library, YAPL.J. Daniel Garcia's work was partially supported by Fundación CajaMadrid through their grant programme for Madrid University Professors. Bjarne Stroustrup's work was partially supported by NSF grant #083319

    The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel

    Get PDF
    International audienceThe increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatypes, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10,000 list fields and variables in recent Linux kernel releases and succeeds in typing 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones

    Exception Safety: Concepts and Techniques

    Full text link
    This paper presents a set of concepts and design techniques that has proven successful in implementing and using C++ libraries intended for applications that simultaneously require high reliability and high performance. The notion of exception safety is based on the basic guarantee that maintains basic invariants and avoids resource leaks and the strong guarantee that ensures that a failed operation has no effect

    Library of Congress Cataloging-in-Publication Data

    Full text link
    ii Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and Addison-Wesley was aware of a trademark claim, the designations have been printed in initial capital letters or all capital letters The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information contained herein. The publisher offers discounts on this book when ordered in quantity for special sales. For more information please contact

    Bahasa pengaturcaraan C++

    Get PDF
    Di sini rujukan jitu dan panduan kepada bahasa pengaturcaraan C++ yang direka bentuk dan digunakan oleh penulis Bjarne Stroustrup. C++ adalah hasil daripada kajian dan uji kaji beberapa tahun di Makmal AT&T Bell untuk mencari pengganti kepada C. Ia digunakan dalam kebanyakan projek di Makmal AT&T Bell. C++ adalah superset C yang mengekalkan kecekapan dan nota mudah C di samping fasiliti untuk menyemak taip, mengabstrak data, operator beban lampau, dan pengaturcaraan orientasi objek. Buku ini mengandungi bahan tutorial dan penerangan yang penting bagi mereka yang amat berminat untuk belajar C++ dan menyiapkan sesuatu projek. Teks ini ditujukan untuk pelajar sains komputer dan pengaturcara profesional yang berkeinginan belajar tentang perkembangan mutakhir bahasa pengaturcaraan C

    Le language C++

    Full text link
    corecore