Este artículo enumera los lenguajes de programación concurrente y paralela , categorizándolos por un paradigma definitorio . Los lenguajes de programación concurrente y paralela implican múltiples líneas de tiempo. Dichos lenguajes proporcionan construcciones de sincronización cuyo comportamiento está definido por un modelo de ejecución paralela . Un lenguaje de programación concurrente se define como uno que utiliza el concepto de ejecutar procesos o hilos de ejecución simultáneamente como un medio para estructurar un programa. Un lenguaje paralelo puede expresar programas que son ejecutables en más de un procesador. Ambos tipos se enumeran, ya que la concurrencia es una herramienta útil para expresar paralelismo, pero no es necesaria. En ambos casos, las características deben ser parte de la sintaxis del lenguaje y no una extensión como una biblioteca (bibliotecas como la biblioteca posix-thread implementan un modelo de ejecución paralela pero carecen de la sintaxis y la gramática requeridas para ser un lenguaje de programación).
Las siguientes categorías pretenden capturar la característica principal y definitoria de los idiomas contenidos, pero no son necesariamente ortogonales.
Estas interfaces de programación de aplicaciones admiten el paralelismo en lenguajes host.