A General Work for the Flow Analysis of Concurrent Programs

Standard techniques for analysing sequential programs are severely constrained when applied to a concurrent program because they cannot take full advantage of the concurrent structure of the program. In this work, we overcome this limitation using a novel approach which ``lifts'' a sequent...

Full description

Bibliographic Details
Main Author: Lam, Patrick
Other Authors: Computer Science
Format: Others
Language:en
Published: McGill University 2016
Subjects:
Online Access:http://hdl.handle.net/10919/71569
id ndltd-vtechworks.lib.vt.edu-oai-vtechworks.lib.vt.edu-10919-71569
record_format oai_dc
spelling ndltd-vtechworks.lib.vt.edu-oai-vtechworks.lib.vt.edu-10919-715692020-10-03T06:13:37Z A General Work for the Flow Analysis of Concurrent Programs Lam, Patrick Computer Science program analysis data flow analysis concurrency QA75 Standard techniques for analysing sequential programs are severely constrained when applied to a concurrent program because they cannot take full advantage of the concurrent structure of the program. In this work, we overcome this limitation using a novel approach which ``lifts'' a sequential dataflow analysis to a concurrent analysis. First, we introduce concurrency primitives which abstract away from the details of how concurrency features are implemented in real programming languages. Using these primitives, we describe how sequential analyses can be made applicable to concurrent programs. Under some circumstances, there is no penalty for concurrency: our method produces results which are as precise as the sequential analysis. Our lifting is straightforward, and we illustrate it on some standard analyses -- available expressions, live variables and generalized constant propagation. Finally, we describe how concurrency features of real languages can be expressed using our abstract concurrency primitives, and present analyses for finding our concurrency primitives in real programs. 2016-06-27T19:03:46Z 2016-06-27T19:03:46Z 2000-08 Thesis eprint:294 http://hdl.handle.net/10919/71569 en In Copyright http://rightsstatements.org/vocab/InC/1.0/ application/postscript application/postscript McGill University
collection NDLTD
language en
format Others
sources NDLTD
topic program analysis
data flow analysis
concurrency
QA75
spellingShingle program analysis
data flow analysis
concurrency
QA75
Lam, Patrick
A General Work for the Flow Analysis of Concurrent Programs
description Standard techniques for analysing sequential programs are severely constrained when applied to a concurrent program because they cannot take full advantage of the concurrent structure of the program. In this work, we overcome this limitation using a novel approach which ``lifts'' a sequential dataflow analysis to a concurrent analysis. First, we introduce concurrency primitives which abstract away from the details of how concurrency features are implemented in real programming languages. Using these primitives, we describe how sequential analyses can be made applicable to concurrent programs. Under some circumstances, there is no penalty for concurrency: our method produces results which are as precise as the sequential analysis. Our lifting is straightforward, and we illustrate it on some standard analyses -- available expressions, live variables and generalized constant propagation. Finally, we describe how concurrency features of real languages can be expressed using our abstract concurrency primitives, and present analyses for finding our concurrency primitives in real programs.
author2 Computer Science
author_facet Computer Science
Lam, Patrick
author Lam, Patrick
author_sort Lam, Patrick
title A General Work for the Flow Analysis of Concurrent Programs
title_short A General Work for the Flow Analysis of Concurrent Programs
title_full A General Work for the Flow Analysis of Concurrent Programs
title_fullStr A General Work for the Flow Analysis of Concurrent Programs
title_full_unstemmed A General Work for the Flow Analysis of Concurrent Programs
title_sort general work for the flow analysis of concurrent programs
publisher McGill University
publishDate 2016
url http://hdl.handle.net/10919/71569
work_keys_str_mv AT lampatrick ageneralworkfortheflowanalysisofconcurrentprograms
AT lampatrick generalworkfortheflowanalysisofconcurrentprograms
_version_ 1719347521811120128