Este artículo enumera los lenguajes de programación concurrentes y paralelos , clasificándolos según un paradigma definitorio . Los lenguajes de programación concurrentes y paralelos implican múltiples líneas de tiempo. Dichos lenguajes proporcionan construcciones de sincronización cuyo comportamiento se define mediante un modelo de ejecución paralela . Un lenguaje de programación concurrente se define como aquel que utiliza el concepto de procesos o hilos de ejecución que se ejecutan simultáneamente como medio para estructurar un programa. Un lenguaje paralelo permite expresar programas que pueden ejecutarse en más de un procesador. Ambos tipos se enumeran, ya que la concurrencia es una herramienta útil para expresar el paralelismo, pero no es necesaria. En ambos casos, las características deben formar parte de la sintaxis del lenguaje y no ser una extensión como una biblioteca (bibliotecas como posix-thread implementan un modelo de ejecución paralela , pero carecen de la sintaxis y la gramática necesarias para ser un lenguaje de programación).
Las siguientes categorías pretenden capturar la característica principal y definitoria de los idiomas que contienen, pero no son necesariamente ortogonales.
Lenguajes de coordinación
Programación de flujo de datos
- Máquina de flujo de datos modular binaria (BMDFM)
- CALIFORNIA
- E – y orientado a objetos
- Joule – y distribuido
- LabVIEW – y síncrono, orientado a objetos
- Brillo y sincronización
- Preesm – y síncrono
- SEÑAL – y síncrona
- SISAL
computación distribuida
Descripción del hardware y del sistema basado en eventos
- Esterel (también sincrónico)
- Sistema C
- SystemVerilog
- Verilog
- Verilog-AMS : modelado matemático de sistemas de tiempo continuo.
- VHDL
Programación funcional
Programación lógica
Basado en monitor
Multihilo
Programación orientada a objetos
- Ada
- DO*
- C++
- DO#
- JavaScript
- Mecanografiado
- C++ AMP
- Encanto++
- Cind
- D
- Delfos
- Programación Orientada a Objetos Concurrente Simple (SCOOP) de Eiffel
- Esmeralda
- Fortran – según la norma ISO Fortran 2003
- GDScript [ 3 ]
- Java
- Join Java – tiene características de join-calculus
- LabVIEW
- Parasailing
- Python [ 4 ]
- Rubí
Espacio de direcciones global particionado (PGAS)
- Capilla
- Coarray Fortran (incluido en el estándar/ISO Fortran desde Fortran 2008; se añadieron extensiones adicionales con el estándar Fortran 2018).
- Fortaleza
- Fortran de alto rendimiento
- Titanio
- Paralelo Unificado C
- X10
- ZPL
paso de mensajes
- Ateji PX : una extensión de Java con primitivas paralelas inspiradas en el cálculo pi .
- Óxido [ 5 ]
- Smalltalk [ 6 ] : pág. 17 Parte IV, véase la tabla que sigue a la figura 11–29
Actor y modelo
- Axum : un lenguaje específico de dominio desarrollado por Microsoft.
- Dardo - uso de aislamientos
- Elixir (se ejecuta en BEAM , la máquina virtual de Erlang)
- Erlang
- Poni
- Jano
- Rojo
- SALSA
- Scala / Akka (conjunto de herramientas)
- Charla informal
- Akka.NET
- LabVIEW - Marco de trabajo de actores de LabVIEW
Basado en CSP
API/frameworks
Estas interfaces de programación de aplicaciones admiten el paralelismo en los lenguajes anfitriones.
- Rayo Apache
- Apache Flink
- Apache Hadoop
- Apache Spark
- CUDA
- OpenCL
- OpenHMPP
- OpenMP para C, C++ y Fortran (memoria compartida y GPU conectadas)
- Interfaz de paso de mensajes para C, C++ y Fortran (computación distribuida)
- SYCL
Véase también
Referencias
- ↑ Thom Frühwirth (9 de julio de 2009). Reglas de manejo de restricciones . Cambridge University Press. ISBN 978-0-521-87776-3.
- ↑ "Uso de hilos para ejecutar código simultáneamente - El lenguaje de programación Rust" . doc.rust-lang.org . Consultado el 11 de octubre de 2022 .
- ↑ "Uso de múltiples hilos" . Documentación de Godot Engine (estable) . Archivado del original el 28/01/2026 . Consultado el 30/01/2026 .
- ↑ Documentación » La biblioteca estándar de Python: Ejecución concurrente
- ↑ "Uso del paso de mensajes para transferir datos entre hilos - El lenguaje de programación Rust" . doc.rust-lang.org . Consultado el 11 de octubre de 2022 .
- ↑ Alan Kay La historia temprana de la charla informal
- ↑ "Lenguaje de programación Crystal – Concurrencia" . Consultado el 10 de agosto de 2018 .
- Lenguajes de programación concurrentes
- Listas de lenguajes de programación