Concurrent program analysis is fashioned for detecting potential race
conditions such as data races in computer programs. One feature of this
analysis is verifying annotations of addressable resources in a program.
Annotations are verified by checking if thread-local resources are indeed
thread-local, and that thread-shared data spaces are not in fact
thread-local. Another feature is detecting potential race conditions, such
as data races, in the computer program. The computer program can spawn a
plurality of threads that are capable of being executed concurrently. The
source code of the computer program being analyzed includes an element
annotated as either thread-local or thread-shared. The validity of the
thread-local annotation is verified if the element is annotated in the
computer program as thread-local, wherein an invalid thread-local
annotation may cause a race condition.
El análisis concurrente del programa se forma para detectar condiciones potenciales de la raza tales como razas de los datos en programas de computadora. Una característica de este análisis está verificando anotaciones de recursos direccionables en un programa. Las anotaciones son verificadas comprobando si los recursos roscar-locales son de hecho roscar-locales, y ése los espacios roscar-compartidos de los datos no está en el hecho roscar-local. Otra característica está detectando condiciones potenciales de la raza, tales como razas de los datos, en el programa de computadora. El programa de computadora puede frezar una pluralidad de hilos de rosca que sean capaces de ser ejecutado concurrentemente. El código de fuente del programa de computadora que es analizado incluye un elemento anotado como roscar-local o roscar-compartido. La validez de la anotación roscar-local se verifica si el elemento se anota en el programa de computadora como roscar-local, en donde una anotación roscar-local inválida puede causar una condición de la raza.