Átomo (lenguaje de programación)

Ir a: navegación, búsqueda de
Átomo
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

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

  1. ^ ANN: Atom - todavía otro HDL Haskell
  2. ^ 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.
  3. ^ Control de vehículos híbridos con Haskell.
  4. ^ ANN: átomo-0.0.2

Enlaces externos

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Atom _ (programming_language) & oldid = 598290600"