@misc{MTMT:34396946, title = {Bridging the Gap: Developing a Standardized Framework for any C++ Code Coverage Tool}, url = {https://m2.mtmt.hu/api/publication/34396946}, author = {Ibrahim, Ahmed Abdulbaki}, unique-id = {34396946}, abstract = {Code coverage tools showcase the degree to which software source code has been thoroughly tested, following the execution of a specific test suite. As a measure of software quality, code coverage should ideally be accurate and consistent, allowing no room for discrepancies in its assessment of source code. Unfortunately, this is not the case in reality. For software testers to manage such inconsistencies effectively, a standardized framework is necessary for their identification and mitigation. However, developing a systematic protocol presents a challenge due to the diverse nature of these inconsistencies; some are tool-specific shortcomings, while others arise from confusion about the coverage status of particular code statements. The highly language-dependent nature of coverage tools, along with the numerous different types of coverage criteria, further complicates the issue. As a result, we have focused solely on the C++ language specification and the statement, branch, modified conditiondecision coverage criteria. Our selections are motivated by the need for coverage tools to comply with the development of safety-critical systems and their applications. Our proposed framework comprises three key elements: a robust set of software requirements that define the necessary functionalities of any coverage tool, an innovative test suite that incorporates all aspects of the aforementioned requirement set in addition to ambiguous code statements, and a Python tool that evaluates the performance of any C++ coverage tool in line with our unique test suite. The necessity to address these concerns is emphasized by a significant gap in current literature and research examining discrepancies in code coverage tools’ behaviour. This represents a considerable risk to safety-critical systems and their compliance with pertinent guidelines and international standards, such as DO-178C and ISO26262.}, year = {2023}, pages = {1-51} } @article{MTMT:30918133, title = {OpenArray v1.0: a simple operator library for the decoupling of ocean modeling and parallel computing}, url = {https://m2.mtmt.hu/api/publication/30918133}, author = {Huang, Xiaomeng and Huang, Xing and Wang, Dong and Wu, Qi and Li, Yi and Zhang, Shixun and Chen, Yuwen and Wang, Mingqing and Gao, Yuan and Tang, Qiang and Chen, Yue and Fang, Zheng and Song, Zhenya and Yang, Guangwen}, doi = {10.5194/gmd-12-4729-2019}, journal-iso = {GEOSCI MODEL DEV}, journal = {GEOSCIENTIFIC MODEL DEVELOPMENT}, volume = {12}, unique-id = {30918133}, issn = {1991-959X}, year = {2019}, eissn = {1991-9603}, pages = {4729-4749}, orcid-numbers = {Li, Yi/0000-0003-3333-2231; Song, Zhenya/0000-0002-8098-5529} } @{MTMT:27423605, title = {Comparison of Runtime Performance Optimization Using Template-Metaprogramming}, url = {https://m2.mtmt.hu/api/publication/27423605}, author = {Vivek, Patel and Piyush, Mishra and J C, Patni and Parul, Mittal}, booktitle = {Smart and Innovative Trends in Next Generation Computing Technologies, Third International Conference, NGCT 2017, Dehradun, India, October 30-31, 2017, Revised Selected Papers, Part I}, doi = {10.1007/978-981-10-8657-1}, publisher = {Springer-Verlag Singapore}, unique-id = {27423605}, year = {2018} } @inproceedings{MTMT:26841075, title = {Parallel programming in actor-based applications via OpenCL}, url = {https://m2.mtmt.hu/api/publication/26841075}, author = {Harvey, P and Hentschel, K and Sventek, J}, booktitle = {16th International Middleware Conference, Middleware 2015}, doi = {10.1145/2814576.2814732}, publisher = {ACM}, unique-id = {26841075}, year = {2015}, pages = {162-172} } @article{MTMT:26841077, title = {An integrated implementation framework for compile-time metaprogramming}, url = {https://m2.mtmt.hu/api/publication/26841077}, author = {Lilis, Y and Savidis, A}, doi = {10.1002/spe.2241}, journal-iso = {SOFTW PRACT EXPER}, journal = {SOFTWARE-PRACTICE & EXPERIENCE}, volume = {45}, unique-id = {26841077}, issn = {0038-0644}, year = {2015}, eissn = {1097-024X}, pages = {727-763} } @mastersthesis{MTMT:27426104, title = {A linguistic approach to concurrent, distributed, and adaptive programming across heterogeneous platforms}, url = {https://m2.mtmt.hu/api/publication/27426104}, author = {Paul, Harvey}, unique-id = {27426104}, year = {2015} } @article{MTMT:26841076, title = {Extensible debugger framework for extensible languages}, url = {https://m2.mtmt.hu/api/publication/26841076}, author = {Pavletic, D and Voelter, M and Raza, SA and Kolb, B and Kehrer, T}, doi = {10.1007/978-3-319-19584-1_3}, editor = {Vardanega, T}, journal-iso = {LECT NOTES ARTIF INT}, journal = {LECTURE NOTES IN ARTIFICIAL INTELLIGENCE}, volume = {9111}, unique-id = {26841076}, issn = {0302-9743}, year = {2015}, pages = {33-49} } @inproceedings{MTMT:26841078, title = {Early detection of type errors in C++ templates}, url = {https://m2.mtmt.hu/api/publication/26841078}, author = {Chen, S and Erwig, M}, booktitle = {ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2014 - Co-located with POPL 2014}, doi = {10.1145/2543728.2543731}, publisher = {ACM}, unique-id = {26841078}, year = {2014}, pages = {133-144} } @{MTMT:2118863, title = {Domain-Specific Language Integration with C++ Template Metaprogramming}, url = {https://m2.mtmt.hu/api/publication/2118863}, author = {Sinkovics, Ábel and Porkoláb, Zoltán}, booktitle = {Formal and Practical Aspects of Domain-Specific Languages: Recent Developments}, doi = {10.4018/978-1-4666-2092-6.ch002}, unique-id = {2118863}, year = {2013}, pages = {32-55}, orcid-numbers = {Porkoláb, Zoltán/0000-0001-6819-0224} } @article{MTMT:27463610, title = {An integrated approach to source level debugging and compile error reporting in metaprograms}, url = {https://m2.mtmt.hu/api/publication/27463610}, author = {Lilis, Y and Savidis, A}, doi = {10.5381/jot.2013.12.3.a1}, journal-iso = {J OBJECT TECHNOL}, journal = {JOURNAL OF OBJECT TECHNOLOGY}, volume = {12}, unique-id = {27463610}, issn = {1660-1769}, year = {2013} } @article{MTMT:22694109, title = {Supporting compile-time debugging and precise error reporting in meta-programs}, url = {https://m2.mtmt.hu/api/publication/22694109}, author = {Yannis, Lilis and Anthony, Savidis}, doi = {10.1007/978-3-642-30561-0_12}, journal-iso = {LNCS}, journal = {LECTURE NOTES IN COMPUTER SCIENCE}, volume = {7304}, unique-id = {22694109}, issn = {0302-9743}, year = {2012}, eissn = {1611-3349}, pages = {155-170} } @inproceedings{MTMT:1996654, title = {Compiler Support for Profiling C++ Template Metaprograms}, url = {https://m2.mtmt.hu/api/publication/1996654}, author = {Mihalicza, József and Pataki, Norbert and Porkoláb, Zoltán}, booktitle = {12th Symposium on Programming Languages and Software Tools, SPLST 2011}, unique-id = {1996654}, year = {2011}, pages = {32-43}, orcid-numbers = {Pataki, Norbert/0000-0002-7519-3367; Porkoláb, Zoltán/0000-0001-6819-0224} } @article{MTMT:2743864, title = {Domain-specific language integration with compile-time parser generator library}, url = {https://m2.mtmt.hu/api/publication/2743864}, author = {Porkoláb, Zoltán and Sinkovics, Ábel}, doi = {10.1145/1942788.1868315}, journal-iso = {ACM SIGPLAN NOTICES}, journal = {ACM SIGPLAN NOTICES}, volume = {46}, unique-id = {2743864}, issn = {0362-1340}, abstract = {Smooth integration of domain-specific languages into a general purpose host language requires absorbing of domain code written in arbitrary syntax. The integration should cause minimal syntactical and semantic overhead and introduce minimal dependency on external tools. In this paper we discuss a DSL integration technique for the C++ programming language. The solution is based on compile-time parsing of the DSL code. The parser generator is a C++ template metaprogram reimplementation of a runtime Haskell parser generator library. The full parsing phase is executed when the host program is compiled. The library uses only standard C++ language features, thus our solution is highly portable. As a demonstration of the power of this approach, we present a highly efficient and type-safe version of printf and the way it can be constructed using our library. Despite the well known syntactical difficulties of C++ template metaprograms, building embedded languages using our library leads to self-documenting C++ source code. Copyright © 2010 ACM.}, keywords = {Semantics; integration; Graphical user interfaces; Computer aided software engineering; Problem oriented languages; General purpose; Runtimes; Source codes; Metaprograms; C++ templates; Compile time; Domain specific languages; Haskell; C++ language; Parser generators; Library use; Integration techniques; Highly-portable; External tools; Embedded Languages; Parser generator; DSL integration; C++ template metaprogram}, year = {2011}, pages = {137-146}, orcid-numbers = {Porkoláb, Zoltán/0000-0001-6819-0224} } @inproceedings{MTMT:2118873, title = {Towards more reliable C++ template metaprograms}, url = {https://m2.mtmt.hu/api/publication/2118873}, author = {Sinkovics, Ábel and Sajó, Endre and Porkoláb, Zoltán}, booktitle = {12th Symposium on Programming Languages and Software Tools, SPLST 2011}, unique-id = {2118873}, keywords = {computer software; Test case; High level languages; test method; Metaprograms; C++ templates; Compile-time algorithms; Unit testing frameworks; Error handling}, year = {2011}, pages = {260-271}, orcid-numbers = {Porkoláb, Zoltán/0000-0001-6819-0224} } @article{MTMT:2400596, title = {C++ metastring library and its applications}, url = {https://m2.mtmt.hu/api/publication/2400596}, author = {Szűgyi, Zalán and Sinkovics, Ábel and Pataki, Norbert and Porkoláb, Zoltán}, doi = {10.1007/978-3-642-18023-1_15}, journal-iso = {LNCS}, journal = {LECTURE NOTES IN COMPUTER SCIENCE}, volume = {6491 LNCS}, unique-id = {2400596}, issn = {0302-9743}, abstract = {C++ template metaprogramming is an emerging direction of generative programming: with proper template definitions we can enforce the C++ compiler to execute algorithms at compilation time. Template metaprograms have become essential part of today's C++ programs of industrial size; they provide code adoptions, various optimizations, DSL embedding, etc. Besides the compilation time algorithms, template metaprogram data-structures are particularly important. From simple typelists to more advanced STL-like data types there are a variety of such constructs. Interesting enough, until recently string, as one of the most widely used data type of programming, has not been supported. Although, boost::mpl::string is an advance in this area, it still lacks the most fundamental string operations. In this paper, we analysed the possibilities of handling string objects at compilation time with a metastring library. We created a C++ template metaprogram library that provides the common string operations, like creating sub-strings, concatenation, replace, and similar. To provide real-life use-cases we implemented two applications on top of our Metastring library. One use case utilizes compilation time inspection of input in the domain of pattern matching algorithms, thus we are able to select the more optimal search method at compilation time. The other use-case implements safePrint, a type-safe version of printf - a widely investigated problem. We present both the performance improvements and extended functionality we have achieved in the applications of our Metastring library. © 2011 Springer-Verlag.}, keywords = {Optimization; Algorithms; computer software; Performance improvements; COMPUTER PROGRAMMING; Time domain analysis; Pattern matching; Time algorithms; Sub-strings; Pattern matching algorithms; Optimal search; Metaprograms; Industrial size; Generative programming; Data type; C++ templates}, year = {2011}, eissn = {1611-3349}, pages = {461-480}, orcid-numbers = {Pataki, Norbert/0000-0002-7519-3367; Porkoláb, Zoltán/0000-0001-6819-0224} } @inproceedings{MTMT:22694105, title = {C++ metastring library and its applications}, url = {https://m2.mtmt.hu/api/publication/22694105}, author = {Zalán, Szűgyi and Ábel, Sinkovics and Norbert, Pataki and Zoltán, Porkoláb}, booktitle = {Generative and Transformational Techniques in Software Engineering III}, unique-id = {22694105}, year = {2011}, pages = {461-480} } @inproceedings{MTMT:1993867, title = {Visualization of C++ Template Metaprograms}, url = {https://m2.mtmt.hu/api/publication/1993867}, author = {Borók-Nagy, Zoltán and Májer, Viktor and Mihalicza, József and Pataki, Norbert and Porkoláb, Zoltán}, booktitle = {10th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2010}, doi = {10.1109/SCAM.2010.16}, unique-id = {1993867}, year = {2010}, pages = {167-176}, orcid-numbers = {Pataki, Norbert/0000-0002-7519-3367; Porkoláb, Zoltán/0000-0001-6819-0224} } @techreport{MTMT:32618266, title = {Debugging Product Line Programs}, url = {https://m2.mtmt.hu/api/publication/32618266}, author = {Kuhleman, Martin and Sturm, Martin}, unique-id = {32618266}, year = {2010} } @inproceedings{MTMT:22694108, title = {Patching product line programs}, url = {https://m2.mtmt.hu/api/publication/22694108}, author = {Martin, Kuhlemann and Martin, Sturm}, booktitle = {2nd International Workshop on Feature-Oriented Software Development}, doi = {10.1145/1868688.1868694}, publisher = {ACM Press}, unique-id = {22694108}, year = {2010}, pages = {33-40} } @inproceedings{MTMT:2743865, title = {Domain-specific language integration with compile-time parser generator library}, url = {https://m2.mtmt.hu/api/publication/2743865}, author = {Porkoláb, Zoltán and Sinkovics, Ábel}, booktitle = {Proceedings of the ninth international conference on generative programming and component engineering}, doi = {10.1145/1868294.1868315}, unique-id = {2743865}, abstract = {Smooth integration of domain-specific languages into a general purpose host language requires absorbing of domain code written in arbitrary syntax. The integration should cause minimal syntactical and semantic overhead and introduce minimal dependency on external tools. In this paper we discuss a DSL integration technique for the C++ programming language. The solution is based on compile-time parsing of the DSL code. The parser generator is a C++ template metaprogram reimplementation of a runtime Haskell parser generator library. The full parsing phase is executed when the host program is compiled. The library uses only standard C++ language features, thus our solution is highly portable. As a demonstration of the power of this approach, we present a highly efficient and type-safe version of printf and the way it can be constructed using our library. Despite the well known syntactical difficulties of C++ template metaprograms, building embedded languages using our library leads to self-documenting C++ source code. © 2010 ACM.}, keywords = {Semantics; integration; Graphical user interfaces; Computer aided software engineering; Problem oriented languages; General purpose; Runtimes; Source codes; Metaprograms; C++ templates; Compile time; Domain specific languages; Haskell; C++ language; Parser generators; Library use; Integration techniques; Highly-portable; External tools; Embedded Languages; Parser generator; DSL integration; C++ template metaprogram}, year = {2010}, pages = {137-146}, orcid-numbers = {Porkoláb, Zoltán/0000-0001-6819-0224} } @article{MTMT:2743866, title = {Functional programming with C++ template metaprograms}, url = {https://m2.mtmt.hu/api/publication/2743866}, author = {Porkoláb, Zoltán}, doi = {10.1007/978-3-642-17685-2_9}, journal-iso = {LNCS}, journal = {LECTURE NOTES IN COMPUTER SCIENCE}, volume = {6299}, unique-id = {2743866}, issn = {0302-9743}, abstract = {Template metaprogramming is an emerging new direction of generative programming. With the clever definitions of templates we can force the C++ compiler to execute algorithms at compilation time. Among the application areas of template metaprograms are the expression templates, static interface checking, code optimization with adaption, language embedding and active libraries. However, as template metaprogramming was not an original design goal, the C++ language is not capable of elegant expression of metaprograms. The complicated syntax leads to the creation of code that is hard to write, understand and maintain. Although template metaprogramming has a strong relationship with functional programming, this is not reflected in the language syntax and existing libraries. In this paper we give a short and incomplete introduction to C++ templates and the basics of template metaprogramming. We will enlight the role of template metaprograms, and some important and widely used idioms. We give an overview of the possible application areas as well as debugging and profiling techniques. We suggest a pure functional style programming interface for C++ template metaprograms in the form of embedded Haskell code which is transformed to standard compliant C++ source. © 2010 Springer-Verlag.}, keywords = {LIBRARIES; Application area; Programming interface; Syntactics; Functional programming; Metaprograms; Generative programming; C++ templates; template metaprogramming; Original design; New directions; Language syntax; Haskell; Expression templates; Code optimization; C++ language}, year = {2010}, eissn = {1611-3349}, pages = {306-353}, orcid-numbers = {Porkoláb, Zoltán/0000-0001-6819-0224} } @article{MTMT:2118886, title = {Functional Extensions to the Boost Metaprogram Library}, url = {https://m2.mtmt.hu/api/publication/2118886}, author = {Sinkovics, Ábel}, doi = {10.1016/j.entcs.2011.06.006}, journal-iso = {ELECTR NOTES COMPUT SCI}, journal = {ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE}, volume = {264}, unique-id = {2118886}, issn = {1571-0661}, abstract = {More and more C++ applications use template metaprograms directly or indirectly by using libraries based on that. Given the complexity of template metaprogramming, developers need supporting libraries. The most widely used one is the Boost template metaprogramming library. It implements commonly used compile time algorithms and meta-data structures in an extensible and reusable way. Despite the wellknown commonality of template metaprogramming and the functional programming paradigm, boost::mpl lacks a few important features directly supporting the functional style. In this paper we evaluate how and in what degree boost::mpl supports functional programming and present new elements it can be improved with.}, year = {2010}, pages = {85-101} } @inproceedings{MTMT:23382204, title = {Identification of idiom usage in C++ generic libraries}, url = {https://m2.mtmt.hu/api/publication/23382204}, author = {Sutton, A and Holeman, R and Maletic, JI}, booktitle = {IEEE International Conference on Program Comprehension}, doi = {10.1109/ICPC.2010.37}, publisher = {Institute of Electrical and Electronics Engineers}, unique-id = {23382204}, year = {2010}, pages = {160-169} } @CONFERENCE{MTMT:22694107, title = {Functional programming with C++ template metaprograms}, url = {https://m2.mtmt.hu/api/publication/22694107}, author = {Zoltán, Porkoláb}, booktitle = {3rd summer school conference on Central European functional programming school}, publisher = {Springer Netherlands}, unique-id = {22694107}, year = {2010}, pages = {306-353} } @mastersthesis{MTMT:26612620, title = {Template metaprogramok hatékony fejlesztése}, url = {https://m2.mtmt.hu/api/publication/26612620}, author = {Sipos, Ádám}, unique-id = {26612620}, year = {2009} } @inproceedings{MTMT:22009798, title = {Abstracting the template instantiation relation in C++}, url = {https://m2.mtmt.hu/api/publication/22009798}, author = {Sutton, Andrew and Holeman, Ryan and Maletic, Jonathan I.}, booktitle = {25th IEEE International Conference on Software Maintenance ICSM 2009}, doi = {10.1109/ICSM.2009.5306392}, unique-id = {22009798}, year = {2009}, pages = {559-562} } @article{MTMT:27463611, title = {Type checking C++ template instantiation by graph programs}, url = {https://m2.mtmt.hu/api/publication/27463611}, author = {Azab, K and Pennemann, K-H}, doi = {10.14279/tuj.eceasst.10.148.153}, journal-iso = {ELECTR COMMUN EASST}, journal = {ELECTRONIC COMMUNICATIONS OF THE EASST}, volume = {10}, unique-id = {27463611}, issn = {1863-2122}, year = {2008} } @inproceedings{MTMT:1996647, title = {Towards Profiling C++ Template Metaprograms}, url = {https://m2.mtmt.hu/api/publication/1996647}, author = {Porkoláb, Zoltán and Mihalicza, József and Pataki, Norbert and Ádám, Sipos}, booktitle = {Proceedings of the 10th Symposium on Programming Languages and Software Tools}, unique-id = {1996647}, year = {2007}, pages = {96-111}, orcid-numbers = {Porkoláb, Zoltán/0000-0001-6819-0224; Pataki, Norbert/0000-0002-7519-3367} } @article{MTMT:1096967, title = {Quantitative Studies on Supraoptic Nucleus in Rat. II. Afferent Fiber-connections}, url = {https://m2.mtmt.hu/api/publication/1096967}, author = {Zaborszky, László and Leranth, C and Makara, Gábor and Palkovits, Miklós}, doi = {10.1007/BF00237352}, journal-iso = {EXP BRAIN RES}, journal = {EXPERIMENTAL BRAIN RESEARCH}, volume = {22}, unique-id = {1096967}, issn = {0014-4819}, year = {1975}, eissn = {1432-1106}, pages = {525-540}, orcid-numbers = {Makara, Gábor/0000-0001-9220-0373; Palkovits, Miklós/0000-0003-0578-0387} }