The strength of program static analysis techniques lies on its ability to detect faulty behaviors prior to the execution. This ability requires that the analysis process foresees any possible runtime scenario. A task which is even more complex in the case of concurrent programs, because of the number of alternatives introduced by the usual nondeterminism. In this particular case, some of the most common faulty behaviors are those about erroneous usage of resources, presence of deadlocks and data race conflicts. Behavioral type systems for programming languages provide a strong mechanism for reasoning on programs actions at static time. In this thesis we discuss two static analysis techniques based on this approach. The first one, targets the resource usage in an ad-hoc language with full-fledged operations for acquiring and releasing virtual machines. The second one, targets the deadlock analysis of Java programs. In both cases we provide a formal proof of correctness, along with prototype implementations that allow practically to test the feasibility of these solutions. These prototypes have also allowed assessing these techniques against others existing in the literature obtaining very encouraging results.

Static Analysis of Concurrent Programs Based on Behavioral Type Systems

2017

Abstract

The strength of program static analysis techniques lies on its ability to detect faulty behaviors prior to the execution. This ability requires that the analysis process foresees any possible runtime scenario. A task which is even more complex in the case of concurrent programs, because of the number of alternatives introduced by the usual nondeterminism. In this particular case, some of the most common faulty behaviors are those about erroneous usage of resources, presence of deadlocks and data race conflicts. Behavioral type systems for programming languages provide a strong mechanism for reasoning on programs actions at static time. In this thesis we discuss two static analysis techniques based on this approach. The first one, targets the resource usage in an ad-hoc language with full-fledged operations for acquiring and releasing virtual machines. The second one, targets the deadlock analysis of Java programs. In both cases we provide a formal proof of correctness, along with prototype implementations that allow practically to test the feasibility of these solutions. These prototypes have also allowed assessing these techniques against others existing in the literature obtaining very encouraging results.
2017
it
File in questo prodotto:
File Dimensione Formato  
PhD%20Thesis%20-%20Abel%20Garcia.pdf

accesso solo da BNCF e BNCR

Tipologia: Altro materiale allegato
Licenza: Tutti i diritti riservati
Dimensione 1.78 MB
Formato Adobe PDF
1.78 MB Adobe PDF

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14242/346611
Il codice NBN di questa tesi è URN:NBN:IT:BNCF-346611