https://www.mdu.se/

mdu.sePublications
Change search
Link to record
Permanent link

Direct link
Alternative names
Publications (10 of 21) Show all publications
Ciccozzi, F., Addazi, L., Abbaspour Asadollah, S., Lisper, B., Masud, A. N. & Mubeen, S. (2023). A Comprehensive Exploration of Languages for Parallel Computing. ACM Computing Surveys, 55(2), Article ID 21.
Open this publication in new window or tab >>A Comprehensive Exploration of Languages for Parallel Computing
Show others...
2023 (English)In: ACM Computing Surveys, ISSN 0360-0300, E-ISSN 1557-7341, Vol. 55, no 2, article id 21Article in journal (Refereed) Published
Abstract [en]

Software-intensive systems in most domains, from autonomous vehicles to health, are becoming predominantly parallel to efficiently manage large amount of data in short (even real-) time. There is an incredibly rich literature on languages for parallel computing, thus it is difficult for researchers and practitioners, even experienced in this very field, to get a grasp on them. With this work we provide a comprehensive, structured, and detailed snapshot of documented research on those languages to identify trends, technical characteristics, open challenges, and research directions. In this article, we report on planning, execution, and results of our systematic peer-reviewed as well as grey literature review, which aimed at providing such a snapshot by analysing 225 studies.

Place, publisher, year, edition, pages
ASSOC COMPUTING MACHINERY, 2023
Keywords
Parallel computing, programming, modelling, languages, frameworks, systematic literature review
National Category
Computer Sciences
Identifiers
urn:nbn:se:mdh:diva-58152 (URN)10.1145/3485008 (DOI)000778458900001 ()2-s2.0-85128233360 (Scopus ID)
Available from: 2022-06-23 Created: 2022-06-23 Last updated: 2022-08-29Bibliographically approved
Masud, A. N. (2023). The Duality in Computing SSA Programs and Control Dependency. IEEE Transactions on Software Engineering, 49(4), 1766-1781
Open this publication in new window or tab >>The Duality in Computing SSA Programs and Control Dependency
2023 (English)In: IEEE Transactions on Software Engineering, ISSN 0098-5589, E-ISSN 1939-3520, Vol. 49, no 4, p. 1766-1781Article in journal (Refereed) Published
Abstract [en]

Control dependency (CD) and Static Single Assignment (SSA) form are the basis of many program analyses, transformation, and optimization techniques, and these are implemented and used by modern compilers such as GCC and LLVM. Most state-of-the-art algorithms approximate these computations by using postdominator relations and dominance frontiers (DF) respectively for efficiency reasons which have been used for over three decades. Dominator-based SSA transformation and control dependencies exhibit a non-dual relationship. Recently, it has been shown that DF-based SSA computation is grossly imprecise, and Weak and Strong Control Closure (WCC and SCC) have wider applicability in capturing control dependencies than postdominator-based CD computation. Our main contribution in this article is the proof of duality between the generation of f functions and the computation of weakly deciding (WD) vertices which are the most computationally expensive part of SSA program construction and WCC/SCC computation respectively. We have provided a duality theorem and its constructive proof by means of an algorithm that can compute both thef functions and the WD vertices seamlessly. We have used this algorithm to compute SSA programs and WCC, and performed experiments on real-world industrial benchmarks. The practical efficiency of our algorithm is (i) almost equal to the best state-of-the-art algorithm in computing WCC, and (ii) closer to (but not as efficient as) the DF-based algorithms in computing SSA programs. Moreover, our algorithm achieves the ultimate precision in computing WCC and SSA programs with respect to the inputs of these algorithms and obtains wider applicability in the WCC computation (handling nonterminating programs).

Place, publisher, year, edition, pages
IEEE COMPUTER SOC, 2023
Keywords
SSA program, control dependency, weak control closure, strong control closure, nontermination, duality, f function
National Category
Computer Sciences
Identifiers
urn:nbn:se:mdh:diva-62684 (URN)10.1109/TSE.2022.3192249 (DOI)000978723600020 ()2-s2.0-85135226777 (Scopus ID)
Available from: 2023-05-31 Created: 2023-05-31 Last updated: 2023-05-31Bibliographically approved
Malm, J., Enoiu, E. P., Masud, A. N., Lisper, B., Porkoláb, Z. & Eldh, S. (2022). An Evaluation of General-Purpose Static Analysis Tools on C/C++ Test Code. In: Proc. - Euromicro Conf. Softw. Eng. Adv. Appl., SEAA: . Paper presented at Proceedings - 48th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2022, Gran Canaria, 31 August - 2 September 2022 (pp. 133-140). Institute of Electrical and Electronics Engineers Inc.
Open this publication in new window or tab >>An Evaluation of General-Purpose Static Analysis Tools on C/C++ Test Code
Show others...
2022 (English)In: Proc. - Euromicro Conf. Softw. Eng. Adv. Appl., SEAA, Institute of Electrical and Electronics Engineers Inc. , 2022, p. 133-140Conference paper, Published paper (Refereed)
Abstract [en]

In recent years, maintaining test code quality has gained more attention due to increased automation and the growing focus on issues caused during this process. Test code may become long and complex, but maintaining its quality is mostly a manual process, that may not scale in big software projects. Moreover, bugs in test code may give a false impression about the correctness or performance of the production code. Static program analysis (SPA) tools are being used to maintain the quality of software projects nowadays. However, these tools are either not used to analyse test code, or any analysis results on the test code are suppressed. This is especially true since SPA tools are not tailored to generate precise warnings on test code. This paper investigates the use of SPA on test code by employing three state-of-the-art general-purpose static analysers on a curated set of projects used in the industry and a random sample of relatively popular and large open-source C/C++ projects. We have found a number of built-in code checking modules that can detect quality issues in the test code. However, these checkers need some tailoring to obtain relevant results. We observed design choices in test frameworks that raise noisy warnings in analysers and propose a set of augmentations to the checkers or the analysis framework to obtain precise warnings from static analysers.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers Inc., 2022
Keywords
C++ (programming language), Open source software, Open systems, Program debugging, Quality control, Software testing, Static analysis, Analysis tools, Code quality, Faults detection, Manual process, Performance, Quality of softwares, Software project, Static program analysis, Test code, Test maintenances, Fault detection, test maintenance, testing
National Category
Software Engineering
Identifiers
urn:nbn:se:mdh:diva-61960 (URN)10.1109/SEAA56994.2022.00029 (DOI)2-s2.0-85147711435 (Scopus ID)9781665461528 (ISBN)
Conference
Proceedings - 48th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2022, Gran Canaria, 31 August - 2 September 2022
Available from: 2023-02-22 Created: 2023-02-22 Last updated: 2023-02-23Bibliographically approved
Masud, A. N. (2022). Efficient computation of minimal weak and strong control closure. Journal of Systems and Software, 184, Article ID 111140.
Open this publication in new window or tab >>Efficient computation of minimal weak and strong control closure
2022 (English)In: Journal of Systems and Software, ISSN 0164-1212, E-ISSN 1873-1228, Vol. 184, article id 111140Article in journal (Refereed) Published
Abstract [en]

Control dependency is a fundamental concept in many program analyses, transformation, parallelization, and compiler optimization techniques. An overwhelming number of definitions of control dependency relations are found in the literature that capture various kinds of program control flow structures. Weak and strong control closure (WCC and SCC) relations capture nontermination insensitive and sensitive control dependencies and subsume all previously defined control dependency relations. In this paper, we have shown that static dependency-based program slicing requires the repeated computation of WCC and SCC. The state-of-the-art WCC and SCC algorithm provided by Danicic et al. has the cubic and the quartic worst-case complexity in terms of the size of the control flow graph and is a major obstacle to be used in static program slicing. We have provided a simple yet efficient method to compute the minimal WCC and SCC which has the quadratic and cubic worst-case complexity and proved the correctness of our algorithms. We implemented ours and the state-of-the-art algorithms in the Clang/LLVM compiler framework and run experiments on a number of SPEC CPU 2017 benchmarks. Our WCC method performs a maximum of 23.8 times and on average 10.6 times faster than the state-of-the-art method to compute WCC. The performance curves of our WCC algorithm for practical applications are closer to the NlogN curve in the microsecond scale. Our SCC method performs a maximum of 226.86 times and on average 67.66 times faster than the state-of-the-art method to compute SCC. Evidently, we improve the practical performance of WCC and SCC computation by an order of magnitude. 

Place, publisher, year, edition, pages
ELSEVIER SCIENCE INC, 2022
Keywords
Control dependency, Weak control closure, Strong control closure, Program slicing, Nontermination (in)sensitive
National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-56721 (URN)10.1016/j.jss.2021.111140 (DOI)000722219800004 ()2-s2.0-85119421199 (Scopus ID)
Available from: 2021-12-14 Created: 2021-12-14 Last updated: 2021-12-16Bibliographically approved
Masud, A. N. (2022). Fast and Incremental Computation of Weak Control Closure. In: Lecture Notes in Computer Science, vol 13790: . Paper presented at 29th International Static Analysis Symposium, SAS 2022, Auckland 5 December 2022 through 7 December 2022 (pp. 325-349). Springer Science and Business Media Deutschland GmbH
Open this publication in new window or tab >>Fast and Incremental Computation of Weak Control Closure
2022 (English)In: Lecture Notes in Computer Science, vol 13790, Springer Science and Business Media Deutschland GmbH , 2022, p. 325-349Conference paper, Published paper (Refereed)
Abstract [en]

Control dependence is a fundamental concept used in many program analysis techniques such as program slicing, program debugging, program parallelization, and detecting security leaks. Since the introduction of this concept in the late eighties, numerous definitions of control dependencies and their computation methods have been developed. The later definitions are progressively more generalized covering a wide spectrum of modern programming language constructs. The most generalized concepts are the weak and strong control closure (WCC and SCC) that capture the nontermination (in)sensitive control dependencies of a given program. In this paper, we have developed a novel method to compute WCC incrementally. Any client application of WCC such as program slicing requires computing the WCC repeatedly in a fixpoint computation. An incremental algorithm to compute WCC will improve the performance of the client application significantly. We have provided the proof of correctness and the theoretical worst-case complexity of our algorithm. We have performed an experimental evaluation on well-known benchmarks, and our experiments reveal that we have significantly improved the practical efficiency in computing WCC incrementally. We have obtained an average speedup of 31.03 in all benchmarks and a maximum speedup of 35.29 than the best state-of-the-art algorithm computing WCC.

Place, publisher, year, edition, pages
Springer Science and Business Media Deutschland GmbH, 2022
Series
Lecture Notes in Computer Science, ISSN 0302-9743 ; 13790 LNCS
Keywords
Control dependence, Nontermination insensitive, Nontermination sensitive, Program slicing, Strong control closure, Weak control closure, Application programs, Computational complexity, Petroleum reservoir evaluation, Client applications, Fast computation, Non terminations, Program debugging
National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-61426 (URN)10.1007/978-3-031-22308-2_15 (DOI)000916500200015 ()2-s2.0-85144829204 (Scopus ID)9783031223075 (ISBN)
Conference
29th International Static Analysis Symposium, SAS 2022, Auckland 5 December 2022 through 7 December 2022
Available from: 2023-01-04 Created: 2023-01-04 Last updated: 2023-02-22Bibliographically approved
Masud, A. N. & Lisper, B. (2022). On the Computation of Interprocedural Weak Control Closure. In: CC 2022 - Proceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction: . Paper presented at 31st ACM SIGPLAN International Conference on Compiler Construction, CC 2022, 2 April 2022 through 3 April 2022 (pp. 65-76). Association for Computing Machinery, Inc
Open this publication in new window or tab >>On the Computation of Interprocedural Weak Control Closure
2022 (English)In: CC 2022 - Proceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction, Association for Computing Machinery, Inc , 2022, p. 65-76Conference paper, Published paper (Refereed)
Abstract [en]

Many program analysis techniques depend on capturing the control dependencies of the program. Most existing control dependence algorithms either compute intraprocedural control dependencies only, or they compute control dependence relations that are not precise in general including nonterminating systems. Weak control closure (WCC) subsumes all known nontermination insensitive control dependence relations, including those that are appropriate for nonterminating systems. In this paper, we provide the first formal development of an algorithm to compute the WCC for interprocedural programs capturing the weak form of interprocedural control dependencies. The method is widely applicable due to the generality of WCC. Theorems on the theoretical results of soundness, precision, and the worst-case complexity of our method are also included. We have compared our algorithm with a WCC computation algorithm based on a state-of-The-Art interprocedural control dependence computation algorithm. The latter algorithm loses soundness, and we improve the precision by 15.21% on all our experimental benchmarks. This empirical evidence suggests that our algorithm is more effective for any client application of WCC requiring interprocedural program analysis.

Place, publisher, year, edition, pages
Association for Computing Machinery, Inc, 2022
Keywords
Control dependency, debugging, nontermination insensitive, program slicing, weak control closure, Program debugging, Computation algorithm, Dependence relation, Inter-procedural, Non terminations, Program analysis, Application programs
National Category
Computer and Information Sciences
Identifiers
urn:nbn:se:mdh:diva-58775 (URN)10.1145/3497776.3517782 (DOI)000883330900007 ()2-s2.0-85127900578 (Scopus ID)9781450391832 (ISBN)
Conference
31st ACM SIGPLAN International Conference on Compiler Construction, CC 2022, 2 April 2022 through 3 April 2022
Available from: 2022-07-13 Created: 2022-07-13 Last updated: 2022-12-15Bibliographically approved
Masud, A. N. & Lisper, B. (2021). Semantic Correctness of Dependence-based Slicing for Interprocedural, Possibly Nonterminating Programs. ACM Transactions on Programming Languages and Systems, 42(4), Article ID 19.
Open this publication in new window or tab >>Semantic Correctness of Dependence-based Slicing for Interprocedural, Possibly Nonterminating Programs
2021 (English)In: ACM Transactions on Programming Languages and Systems, ISSN 0164-0925, E-ISSN 1558-4593, Vol. 42, no 4, article id 19Article in journal (Refereed) Published
Abstract [en]

Existing proofs of correctness for dependence-based slicing methods are limited either to the slicing of intraprocedural programs [2, 39], or the proof is only applicable to a specific slicing method [4, 41]. We contribute a general proof of correctness for dependence-based slicing methods such as Weiser [50, 51], or Binkley et al. [7, 8], for interprocedural, possibly nonterminating programs. The proof uses well-formed weak and strong control closure relations, which are the interprocedural extensions of the generalised weak/strong control closure provided by Danicic et al. [13], capturing various nonterminating-insensitive and nontermination-sensitive control-dependence relations that have been proposed in the literature. Thus, our proof framework is valid for a whole range of existing control-dependence relations. We have provided a definition of semantically correct (SC) slice. We prove that SC slices agree with Weiser slicing, that deterministic SC slices preserve termination, and that nondeterministic SC slices preserve the nondeterministic behavior of the original programs.

Place, publisher, year, edition, pages
ASSOC COMPUTING MACHINERY, 2021
Keywords
Correctness of slicing, static slicing, semi-equivalence, simulation, bisimulation, nontermination, nondeterminism, interprocedural program
National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-53615 (URN)10.1145/3434489 (DOI)000618199200004 ()2-s2.0-85100787081 (Scopus ID)
Available from: 2021-03-11 Created: 2021-03-11 Last updated: 2021-03-26Bibliographically approved
Masud, A. N. & Ciccozzi, F. (2020). More precise construction of static single assignment programs using reaching definitions. Journal of Systems and Software, 166, Article ID 110590.
Open this publication in new window or tab >>More precise construction of static single assignment programs using reaching definitions
2020 (English)In: Journal of Systems and Software, ISSN 0164-1212, E-ISSN 1873-1228, Vol. 166, article id 110590Article in journal (Refereed) Published
Abstract [en]

The Static Single Assignment (SSA) form is an intermediate representation used for the analysis and optimization of programs in modern compilers. The ϕ-function placement is the most computationally expensive part of converting any program into its SSA form. The most widely-used ϕ-function placement algorithms are based on computing dominance frontiers (DF). However, this kind of algorithms works under the limiting assumption that all variables are defined at the beginning of the program, which is not the case for local variables. In this paper, we introduce an innovative ϕ-placement algorithm based on computing reaching definitions (RD), which generates a precise number of ϕ-functions. We provided theorems and proofs showing the correctness and the theoretical computational complexity of our algorithms. We implemented our approach and a well-known DF-based algorithm in the Clang/LLVM compiler framework, and performed experiments on a number of benchmarks. The results show that the limiting assumption of the DF-based algorithm when compared with the more accurate results of our RD-based approach leads to generating up to 87% (69% on average) superfluous ϕ-functions on all benchmarks, and thus brings about a significant precision loss. Moreover, even though our approach computes more information to generate precise results, it is able to analyze up to 92.96% procedures (65.63% on average) of all benchmarks with execution time within twice the execution time of the reference DF-based approach. © 2020 Elsevier Inc.

Place, publisher, year, edition, pages
Elsevier Inc., 2020
Keywords
Dataflow analysis, Program optimization, Program transformation, Reaching definition, Static single assignment, Computational complexity, Expensive parts, Intermediate representations, Local variables, Placement algorithm, Static single assignments, Program compilers
National Category
Computer Engineering
Identifiers
urn:nbn:se:mdh:diva-47852 (URN)10.1016/j.jss.2020.110590 (DOI)000532668700004 ()2-s2.0-85083322697 (Scopus ID)
Available from: 2020-04-30 Created: 2020-04-30 Last updated: 2020-06-09Bibliographically approved
Masud, A. N. (2020). Simple and Efficient Computation of Minimal Weak Control Closure. In: Lecture Notes in Computer Science, vol. 12389: . Paper presented at SAS 2020 - 27th Static Analysis Symposium SAS 2020, 18 Nov 2020, Chicago, United States (pp. 200-222).
Open this publication in new window or tab >>Simple and Efficient Computation of Minimal Weak Control Closure
2020 (English)In: Lecture Notes in Computer Science, vol. 12389, 2020, p. 200-222Conference paper, Published paper (Refereed)
Abstract [en]

Control dependency is a fundamental concept in many program analyses, transformation, parallelization, and compiler optimization techniques. An overwhelming number of definitions of control dependency relations are found in the literature that capture various kinds of program control flow structures. Weak and strong control closure (WCC and SCC) relations capture nontermination insensitive and sensitive control dependencies and subsume all previously defined control dependency relations. In this paper, we have shown that static dependency-based program slicing requires the repeated computation of WCC and SCC. The state-of-the-art WCC algorithm provided by Danicic et al. has the cubic worst-case complexity in terms of the size of the control flow graph and is a major obstacle to be used in static program slicing. We have provided a simple yet efficient method to compute the minimal WCC which has the quadratic worst-case complexity and proved the correctness of our algorithms. We implemented ours and the state-of-the-art algorithms in the Clang/LLVM compiler framework and run experiments on a number of SPEC CPU 2017 benchmarks. Our method performs a maximum of 23.8 times and on average 11.1 times faster than the state-of-the-art method. The performance curves of our WCC algorithm for practical applications are closer to the NlogN curve in the microsecond scale. Evidently, we improve the practical performance of WCC computation by an order of magnitude.

Series
Lecture Notes in Computer Science, ISSN 0302-9743 ; 12389
Keywords
Control dependencyweak control closurestrong control closureprogram slicingnontermination insensitivenontermination sensitive
National Category
Engineering and Technology Computer Systems
Identifiers
urn:nbn:se:mdh:diva-49983 (URN)10.1007/978-3-030-65474-0_10 (DOI)000728160300010 ()2-s2.0-85101412526 (Scopus ID)978-3-030-65474-0 (ISBN)
Conference
SAS 2020 - 27th Static Analysis Symposium SAS 2020, 18 Nov 2020, Chicago, United States
Projects
HERO: Heterogeneous systems - software-hardware integration
Available from: 2020-09-29 Created: 2020-09-29 Last updated: 2021-12-30Bibliographically approved
Masud, A. N. & Ciccozzi, F. (2019). Towards constructing the SSA form using reaching definitions over dominance frontiers. In: Proceedings - 19th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2019: . Paper presented at 19th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2019; Cleveland; United States; 30 September 2019 through 1 October 2019 (pp. 23-33). Institute of Electrical and Electronics Engineers Inc.
Open this publication in new window or tab >>Towards constructing the SSA form using reaching definitions over dominance frontiers
2019 (English)In: Proceedings - 19th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2019, Institute of Electrical and Electronics Engineers Inc. , 2019, p. 23-33Conference paper, Published paper (Refereed)
Abstract [en]

The Static Single Assignment (SSA) form is an intermediate representation used for the analysis and optimization of programs in modern compilers. The φ-function placement is the most computationally expensive part of converting any program into its SSA form. The most widely-used φ-function placement algorithms are based on computing dominance frontiers. However, this kind of algorithms works under the limiting assumption that all variables are defined at the beginning of the program, which is not the case for local variables. In this paper, we introduce an innovative algorithm based on computing reaching definitions, only assuming that global variables and formal parameters are defined at the beginning of the program. We implemented our algorithm and compared it to a well-known dominance frontiers-based algorithm in the Clang/LLVM compiler framework by performing experiments on a benchmarking suite for Perl. The results of our experiments show that, besides a few computationally expensive cases, our algorithm is fairly efficient, and most notably it produces up to 169% and on an average 74% fewer φ-functions than the reference dominance frontiers-based algorithm. 

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers Inc., 2019
National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-46796 (URN)10.1109/SCAM.2019.00012 (DOI)000529322000003 ()2-s2.0-85077814605 (Scopus ID)9781728149370 (ISBN)
Conference
19th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2019; Cleveland; United States; 30 September 2019 through 1 October 2019
Available from: 2020-01-23 Created: 2020-01-23 Last updated: 2020-05-20Bibliographically approved
Organisations
Identifiers
ORCID iD: ORCID iD iconorcid.org/0000-0002-4872-1208

Search in DiVA

Show all publications