6 research outputs found

    Array operators using multiple dispatch: a design methodology for array implementations in dynamic languages

    Get PDF
    Arrays are such a rich and fundamental data type that they tend to be built into a language, either in the compiler or in a large low-level library. Defining this functionality at the user level instead provides greater flexibility for application domains not envisioned by the language designer. Only a few languages, such as C++ and Haskell, provide the necessary power to define nn-dimensional arrays, but these systems rely on compile-time abstraction, sacrificing some flexibility. In contrast, dynamic languages make it straightforward for the user to define any behavior they might want, but at the possible expense of performance. As part of the Julia language project, we have developed an approach that yields a novel trade-off between flexibility and compile-time analysis. The core abstraction we use is multiple dispatch. We have come to believe that while multiple dispatch has not been especially popular in most kinds of programming, technical computing is its killer application. By expressing key functions such as array indexing using multi-method signatures, a surprising range of behaviors can be obtained, in a way that is both relatively easy to write and amenable to compiler analysis. The compact factoring of concerns provided by these methods makes it easier for user-defined types to behave consistently with types in the standard library.Comment: 6 pages, 2 figures, workshop paper for the ARRAY '14 workshop, June 11, 2014, Edinburgh, United Kingdo

    Photochemical and photophysical reaction dynamics of chemical and biological systems

    Get PDF
    Texto en inglés, y resumen y conclusiones en inglés y españolEl proyecto realizado en esta Tesis consiste en el desarrollo y aplicación de metodologías teóricas y computaciones, usadas en la descripción estática y dinámica de procesos fotofísicos y fotoquímicos de compuestos químicos y de interés biológico. Estas metodologías computacionales fueron implementadas aplicando técnicas punteras usadas en el campo de la ciencia de la computación. La presente Tesis se compone de 4 bloques principales. El primero de estos bloques estudia el proceso de transferencia de energía intermolecular, especialmente transferencia de energía triplete. Por su parte, el segundo bloque examina los mecanismos y comportamiento dinámico de dos procesos biológicos fotoinducidos de intereses tecnológico. Mientras el tercer bloque, consiste en el estudio del efecto de fuerzas externas sobre las propiedades espectroscópicas de los sistemas moleculares. Finalmente, el último bloque considera el diseño de dispositivos moleculares que usan cambios conformacionales fotoinducidos en la generación de movimiento controlado. En la sección de transferencia de energía ha sido estudiado el problema de encontrar las principales coordenadas moleculares que modulan de forma eficiente el proceso de transferencia de energía triplete. Así mismo, se llevó a cabo una aproximación dinámica al proceso de transferencia energía triplete a temperatura constante, que completa el estudio estático llevado a cabo en la primera parte de la sección. En la primer parte del segundo bloque, se lleva a cabo la caracterización estática y dinámica de modelos moleculares en el estudio de los fenómenos de quimioluminiscencia y bioluminiscencia. Donde se analiza en detalle el mecanismo de descomposición concertado de la familia de 1,2-dioxetanes. Por su parte, en la segunda sección de este bloque es analizado el efecto del ambiente proteico en la emisión de fluorescencia de la proteína fluorescente IrisFP. En el tercer bloque de la presente Tesis ha sido explorado la respuesta fotodinámica de sistemas moleculares al efecto de una fuerza externa. Discutiendo en detalle el efecto sobre el cambio de la reactividad química a causa de la disrupción del sistema molecular por parte de la fuerza externa. Simultáneamente, se muestran los resultados obtenidos con respecto al cambio en las propiedades espectroscópicas debidos a la fuerza externa y se plantea su posible aprovechamiento en aplicaciones tecnológicas Finalmente en el último bloque del presente trabajo, se expone el diseño y operación de dispositivos moleculares como motores e interruptores controlados mediante ciclos fotoinducidos, controlado la rotación unidireccional en el caso de los motores moleculares a través de puentes de hidrógenos

    Photochemical and photophysical reaction dynamics of chemical and biological systems

    Get PDF
    Texto en inglés, y resumen y conclusiones en inglés y españolEl proyecto realizado en esta Tesis consiste en el desarrollo y aplicación de metodologías teóricas y computaciones, usadas en la descripción estática y dinámica de procesos fotofísicos y fotoquímicos de compuestos químicos y de interés biológico. Estas metodologías computacionales fueron implementadas aplicando técnicas punteras usadas en el campo de la ciencia de la computación. La presente Tesis se compone de 4 bloques principales. El primero de estos bloques estudia el proceso de transferencia de energía intermolecular, especialmente transferencia de energía triplete. Por su parte, el segundo bloque examina los mecanismos y comportamiento dinámico de dos procesos biológicos fotoinducidos de intereses tecnológico. Mientras el tercer bloque, consiste en el estudio del efecto de fuerzas externas sobre las propiedades espectroscópicas de los sistemas moleculares. Finalmente, el último bloque considera el diseño de dispositivos moleculares que usan cambios conformacionales fotoinducidos en la generación de movimiento controlado. En la sección de transferencia de energía ha sido estudiado el problema de encontrar las principales coordenadas moleculares que modulan de forma eficiente el proceso de transferencia de energía triplete. Así mismo, se llevó a cabo una aproximación dinámica al proceso de transferencia energía triplete a temperatura constante, que completa el estudio estático llevado a cabo en la primera parte de la sección. En la primer parte del segundo bloque, se lleva a cabo la caracterización estática y dinámica de modelos moleculares en el estudio de los fenómenos de quimioluminiscencia y bioluminiscencia. Donde se analiza en detalle el mecanismo de descomposición concertado de la familia de 1,2-dioxetanes. Por su parte, en la segunda sección de este bloque es analizado el efecto del ambiente proteico en la emisión de fluorescencia de la proteína fluorescente IrisFP. En el tercer bloque de la presente Tesis ha sido explorado la respuesta fotodinámica de sistemas moleculares al efecto de una fuerza externa. Discutiendo en detalle el efecto sobre el cambio de la reactividad química a causa de la disrupción del sistema molecular por parte de la fuerza externa. Simultáneamente, se muestran los resultados obtenidos con respecto al cambio en las propiedades espectroscópicas debidos a la fuerza externa y se plantea su posible aprovechamiento en aplicaciones tecnológicas Finalmente en el último bloque del presente trabajo, se expone el diseño y operación de dispositivos moleculares como motores e interruptores controlados mediante ciclos fotoinducidos, controlado la rotación unidireccional en el caso de los motores moleculares a través de puentes de hidrógenos

    Guiding parallel array fusion with indexed types

    No full text

    Guiding Parallel Array Fusion with Indexed Types

    No full text
    We present a refined approach to parallel array fusion that uses indexed types to specify the internal representation of each array. Our approach aids the client programmer in reasoning about the performance of their program in terms of the source code. It also makes the intermediate code easier to transform at compile-time, resulting in faster compilation and more reliable runtimes. We demonstrate how our new approach improves both the clarity and performance of several end-user written programs, including a fluid flow solver and an interpolator for volumetric data. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features—Concurrent programming structures; Polymorphism; Abstract data type
    corecore