The Experts below are selected from a list of 2181 Experts worldwide ranked by ideXlab platform

Norbert Pataki - One of the best experts on this subject based on the ideXlab platform.

  • BCI - On the Validated Usage of the C++ standard template library
    Proceedings of the 9th Balkan Conference on Informatics, 2019
    Co-Authors: Bence Babati, Norbert Pataki, Gábor Horváth, Attila Páter-részeg
    Abstract:

    The C++ standard template library (STL) is the most well-known and widely used library that is based on the generic programming paradigm. The STL takes advantage of C++ templates, so it is an extensible, effective but flexible system. Professional C++ programs cannot miss the usage of the STL because it increases quality, maintainability, understandability and efficacy of the code. However, the usage of C++ STL does not guarantee error-free code. Contrarily, incorrect application of the library may introduce new types of problems. Unfortunately, there is still a large number of properties that are tested neither at compilation-time nor at runtime. It is not surprising that in implementation of C++ programs so many STL-related bugs may occur. It is clearly seen that the compilation validation is not sophisticated enough to detect subtle misusages of this library. In this paper, we propose different approaches for the validation of the C++ STL's usage. We take advantage of aspect-oriented programming paradigm, metaprogramming techniques, static analysis, and automated debugging tool as well. We compare the presented approaches comprehensively, the pros and cons of these techniques are considered, evaluated and highlighted.

  • on the validated usage of the c standard template library
    Balkan Conference in Informatics, 2019
    Co-Authors: Bence Babati, Norbert Pataki, Gábor Horváth, Attila Paterreszeg
    Abstract:

    The C++ standard template library (STL) is the most well-known and widely used library that is based on the generic programming paradigm. The STL takes advantage of C++ templates, so it is an extensible, effective but flexible system. Professional C++ programs cannot miss the usage of the STL because it increases quality, maintainability, understandability and efficacy of the code. However, the usage of C++ STL does not guarantee error-free code. Contrarily, incorrect application of the library may introduce new types of problems. Unfortunately, there is still a large number of properties that are tested neither at compilation-time nor at runtime. It is not surprising that in implementation of C++ programs so many STL-related bugs may occur. It is clearly seen that the compilation validation is not sophisticated enough to detect subtle misusages of this library. In this paper, we propose different approaches for the validation of the C++ STL's usage. We take advantage of aspect-oriented programming paradigm, metaprogramming techniques, static analysis, and automated debugging tool as well. We compare the presented approaches comprehensively, the pros and cons of these techniques are considered, evaluated and highlighted.

  • clang matchers for verified usage of the c standard template library
    2015
    Co-Authors: Gábor Horváth, Norbert Pataki
    Abstract:

    The C++ standard template library (STL) is the exemplar of generic libraries. Professional C++ programs cannot miss the usage of this standard library because it increases quality, maintainability, understandability and ecacy of the code. However, the usage of C++ STL does not guarantee error-free code. Contrarily, incorrect application of the library may introduce new types of problems. Unfortunately, there is still a large number of properties are tested neither at compilation-time nor at run-time. It is not surprising that in implementation of C++ programs so many STL-related bugs are occurred. We match patterns on abstract syntax trees (AST) with the help of predicates. The predicates can be combined and define an embedded language. We have developed a tool which finds the potential missuses of the STL as a validation of our approach. The software takes advantage of the Clang ASTMatcher technology. The tool is in-use in Ericsson. We advise new matchers that have get into the Clang code base.

  • Clang matchers for verified usage of the C++ standard template library
    2015
    Co-Authors: Gábor Horváth, Norbert Pataki
    Abstract:

    The C++ standard template library (STL) is the exemplar of generic libraries. Professional C++ programs cannot miss the usage of this standard library because it increases quality, maintainability, understandability and ecacy of the code. However, the usage of C++ STL does not guarantee error-free code. Contrarily, incorrect application of the library may introduce new types of problems. Unfortunately, there is still a large number of properties are tested neither at compilation-time nor at run-time. It is not surprising that in implementation of C++ programs so many STL-related bugs are occurred. We match patterns on abstract syntax trees (AST) with the help of predicates. The predicates can be combined and define an embedded language. We have developed a tool which finds the potential missuses of the STL as a validation of our approach. The software takes advantage of the Clang ASTMatcher technology. The tool is in-use in Ericsson. We advise new matchers that have get into the Clang code base.

  • SAFE ITERATOR FRAMEWORK FOR THE C++ standard template library
    Acta Electrotechnica et Informatica, 2012
    Co-Authors: Norbert Pataki
    Abstract:

    The C++ standard template library is the flagship example for libraries based on the generic programming paradigm. The usage of this library is intended to minimize classical C/C++ errors, but does not warrant bug-free programs. Furthermore, many new kinds of errors may arise from the inaccurate use of the generic programming paradigm, like dereferencing invalid iterators or misunderstanding remove-like algorithms. In this paper we present some typical scenarios that may cause undefined or weird behaviour. We present approaches that can be used for developing different safe iterators to avoid run-time errors. Some of these iterators are able to manipulate the container directly, hence they cannot result in undefined behaviour when an algorithm needs to add elements to the container or delete elements from the container. Our iterators are able to indicate if they are invalid. Algorithms’ preconditions are evaluated with our iterators.

Michael Taylor - One of the best experts on this subject based on the ideXlab platform.

  • invited basejump stl systemverilog needs a standard template library for hardware design
    Design Automation Conference, 2018
    Co-Authors: Michael Taylor
    Abstract:

    We propose a standard template library (STL) for synthesizeable SystemVerilog that sharply reduces the time required to design digital circuits. We overview the principles that underly the design of the open-source BaseJump STL, including light-weight latency-insensitive interfaces that yield fast microarchitectures and low bug density; thin handshaking rules; fast porting of hardened chip regions across nodes; pervasive parameterization and specialization, and static error checking. We suggest extensions to SystemVerilog that will make it a more functional design language, and discuss our validation, including with the DARPA CRAFT-sponsored 16nm TSMC Celerity SoC with 511 RISC-V cores and 385M transistors. 80% of the modules for the design were instantiated directly from BaseJump STL, reducing verification time, accelerating development, and showing the promise of the approach.

  • DAC - INVITED: BaseJump STL: SystemVerilog Needs a standard template library for Hardware Design
    Proceedings of the 55th Annual Design Automation Conference, 2018
    Co-Authors: Michael Taylor
    Abstract:

    We propose a standard template library (STL) for synthesizeable SystemVerilog that sharply reduces the time required to design digital circuits. We overview the principles that underly the design of the open-source BaseJump STL, including light-weight latency-insensitive interfaces that yield fast microarchitectures and low bug density; thin handshaking rules; fast porting of hardened chip regions across nodes; pervasive parameterization and specialization, and static error checking. We suggest extensions to SystemVerilog that will make it a more functional design language, and discuss our validation, including with the DARPA CRAFT-sponsored 16nm TSMC Celerity SoC with 511 RISC-V cores and 385M transistors. 80% of the modules for the design were instantiated directly from BaseJump STL, reducing verification time, accelerating development, and showing the promise of the approach.

Peter Sanders - One of the best experts on this subject based on the ideXlab platform.

  • stxxl standard template library for xxl data sets
    Software - Practice and Experience, 2008
    Co-Authors: Roman Dementiev, Lutz Kettner, Peter Sanders
    Abstract:

    We present the software library STXXL that is an implementation of the C++ standard template library (STL) for processing huge data sets that can fit only on hard disks. It supports parallel disks, overlapping between disk I-O and computation and it is the first I-O-efficient algorithm library that supports the pipelining technique that can save more than half of the I-Os. STXXL has been applied both in academic and industrial environments for a range of problems including text processing, graph algorithms, computational geometry, Gaussian elimination, visualization, and analysis of microscopic images, differential cryptographic analysis, etc. The performance of STXXL and its applications are evaluated on synthetic and real-world inputs. We present the design of the library, how its performance features are supported, and demonstrate how the library integrates with STL. Copyright © 2007 John Wiley & Sons, Ltd. Now at mental images GmbH, Berlin, Germany.

  • mcstl the multi core standard template library
    ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2007
    Co-Authors: Felix Putze, Peter Sanders, Johannes Singler
    Abstract:

    Future gain in computing performance will not stem from increased clock rates, but from even more cores in a processor. Since automatic parallelization is still limited to easily parallelizable sections of the code, most applications will soon have to support parallelism explicitly. The Multi-Core standard template library (MCSTL) simplifies parallelization by providing efficient parallel implementations of the algorithms in the C++ standard template library. Thus, simple recompilation will provide partial parallelization of applications that make consistent use of the STL. We present performance measurements on several architectures. For example, our sorter achieves a speedup of 21 on an 8-core 32-thread SUN T1.

  • Euro-Par - MCSTL: the multi-core standard template library
    Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming - PPoPP '07, 2007
    Co-Authors: Felix Putze, Peter Sanders, Johannes Singler
    Abstract:

    Future gain in computing performance will not stem from increased clock rates, but from even more cores in a processor. Since automatic parallelization is still limited to easily parallelizable sections of the code, most applications will soon have to support parallelism explicitly. The Multi-Core standard template library (MCSTL) simplifies parallelization by providing efficient parallel implementations of the algorithms in the C++ standard template library. Thus, simple recompilation will provide partial parallelization of applications that make consistent use of the STL. We present performance measurements on several architectures. For example, our sorter achieves a speedup of 21 on an 8-core 32-thread SUN T1.

  • STXXL: standard template library for XXL data sets
    Algorithms – ESA 2005, 2005
    Co-Authors: Roman Dementiev, Lutz Kettner, Peter Sanders
    Abstract:

    We present a software library Stxxl, that enables practice-oriented experimentation with huge data sets. Stxxl is an implementation of the C++ standard template library STL for external memory computations. It supports parallel disks, overlapping between I/O and computation, and pipelining technique that can save more than half of the I/Os. Stxxl has already been used for computing minimum spanning trees, connected components, breadth-first search decompositions, constructing suffix arrays, and computing social network analysis metrics.

Yi Sun - One of the best experts on this subject based on the ideXlab platform.

  • web labs for the standard template library and the java generic library in a cs2 course
    Technical Symposium on Computer Science Education, 1999
    Co-Authors: W J Collins, Yi Sun
    Abstract:

    This paper describes a suite of laboratory experiments for a CS2 course. The main thrust of the experiments is to promote an understanding of a container-class library: the standard template library for C++ or the Java Generic library for Java. All of the experiments are stored on the World Wide Web, and students have considerable latitude on when each experiment must be completed.

  • SIGCSE - Web labs for the standard template library and the Java generic library in a CS2 course
    The proceedings of the thirtieth SIGCSE technical symposium on Computer science education - SIGCSE '99, 1999
    Co-Authors: William J. Collins, Yi Sun
    Abstract:

    This paper describes a suite of laboratory experiments for a CS2 course. The main thrust of the experiments is to promote an understanding of a container-class library: the standard template library for C++ or the Java Generic library for Java. All of the experiments are stored on the World Wide Web, and students have considerable latitude on when each experiment must be completed.

Joseph Bergin - One of the best experts on this subject based on the ideXlab platform.