Átomo (lenguaje de programación)
Paradigm(s) | funcional, síncrono, reactiva |
---|---|
Diseñado por | Thomas Hawkins |
Apareció en | 2007 |
Disciplina mecanografía | estática, fuerte, deducido |
Influenciado por | BluespecConfluencia, Haskell |
OS | portable |
Licencia | BSD3 |
Sitio web | https://hackage.Haskell.org/Package/Atom/ |
Átomo es un lenguaje específico del dominio (DSL) en Haskell, para diseñar en tiempo real incrustado software.
Contenido
- 1 Historia
- 2 Resumen
- 3 Ejemplos
- 4 Limitaciones
- 5 Referencias
- 6 Enlaces externos
Historia
Originalmente concebido como un alto nivel lenguaje de descripción de hardwareÁtomo fue creada a principios de 2007 y lanzado en código abierto de abril del mismo año.[1] Inspirado en TRS [2] y BluespecÁtomo compilado descripciones del circuito, que se basaban en operaciones atómicas vigiladas, o reescritura de término condicional, en Verilog netlists para la simulación y síntesis de la lógica. Como un compilador de hardware, objetivo primario del átomo fue maximizar el número de operaciones, o reglas, que pueden ejecutarse en un ciclo de reloj dado sin violar la semántica de operación atómica. Mediante el empleo de las propiedades de reglas secuencialmente componibles y libre de conflictos,[2] Átomo reducida concurrencia maximización de ejecución a un retroalimentación Arco conjunto optimización de un grafo de dependencia regla-datos. Este proceso era similar a James Hoedel algoritmo original.[2]
Autor del átomo estando carreras a finales de 2007 desde el diseño de la lógica a software embebido Ingeniería, átomo fue rediseñada de un HDL a un lenguaje específico de dominio targeting duro en tiempo real aplicaciones embebidas. Como resultado, objetivo primordial del compilador del átomo cambió de maximizar la concurrencia de regla para equilibrar la carga de procesamiento y minimizando latencia de sincronización caso peor. En septiembre de 2008, el átomo se presentó en CUFP,[3] y en abril de 2009, fue liberado como código abierto en su nueva forma.[4]
Resumen
Átomo es un lenguaje de programación concurrente para aplicaciones embebidas. Características del átomo tiempo de compilación programación de tareas y genera código de tiempo de ejecución de determinista y el consumo de memoria, simplificando peor caso tiempo de ejecución Análisis para aplicaciones que requieren duro en tiempo real rendimiento. Modelo del átomo de concurrencia es el de acciones atómicas vigiladas, que elimina la necesidad de y el problemas del uso, cerraduras mutex.
Mediante la eliminación de tiempo de ejecución tareas y cierre mutex — dos servicios tradicionalmente servida por un RTOS— Átomo puede eliminar la necesidad y la sobrecarga de un RTOS en aplicaciones embebidas.
Ejemplos
Esta sección está vacía. Usted puede ayudar añadiendo. (Julio de 2010) |
Limitaciones
Para proporcionar garantías de tiempo de ejecución de determinista y el consumo de memoria, Atom impone varias restricciones cómputo. En primer lugar, átomo diseños siempre son Estados finitos: todas las variables son globales y declarado en tiempo de compilación y asignación de memoria dinámica No está permitido. En segundo lugar, átomo proporciona ninguna función o construcciones de bucle. En cambio son puras versiones variable estado funciones combinacionales del estado actual.
Referencias
- ^ ANN: Atom - todavía otro HDL Haskell
- ^ a b c Síntesis de las descripciones de Hardware centrada en la operación. James C. Hoe y Arvind. International Conference on Computer Aided diseño (CICAD), noviembre de 2000.
- ^ Control de vehículos híbridos con Haskell.
- ^ ANN: átomo-0.0.2