Result: HPorter : Using arrows to compose parallel processes

Title:
HPorter : Using arrows to compose parallel processes
Source:
Practical aspects of declarative languages (9th international symposium, PADL 2007, Nice, France, January 14-15, 2007)Lecture notes in computer science. :275-289
Publisher Information:
Berlin: Springer, 2007.
Publication Year:
2007
Physical Description:
print, 16 ref 1
Original Material:
INIST-CNRS
Subject Terms:
Computer science, Informatique, Sciences exactes et technologie, Exact sciences and technology, Sciences appliquees, Applied sciences, Informatique; automatique theorique; systemes, Computer science; control theory; systems, Informatique théorique, Theoretical computing, Algorithmique. Calculabilité. Arithmétique ordinateur, Algorithmics. Computability. Computer arithmetics, Logiciel, Software, Langages de programmation, Programming languages, Intelligence artificielle, Artificial intelligence, Reconnaissance des formes. Traitement numérique des images. Géométrie algorithmique, Pattern recognition. Digital image processing. Computational geometry, Architecture reconfigurable, Reconfigurable architectures, Arithmétique, Arithmetics, Aritmética, Boucle programme, Program loop, Bucle programa, Chemin données, Data path, Camino datos, Dynamique processus, Process dynamics, Dinámica proceso, Fonction trigonométrique, Trigonometric function, Función trigonométrica, Gestion événement, Event management, Gestión aconticimiento, Langage C, C language, Lenguaje C, Langage déclaratif, Declarative language, Lenguaje declarativo, Langage dédié, Domain specific language, Lenguaje dedicado, Langage fonctionnel, Functional language, Lenguaje funcional, Langage ordre 1, First order language, Lenguaje orden 1, Langage programmation, Programming language, Lenguaje programación, Langage script, Scripting language, Lenguaje script, Logique monadique, Monadic logic, Lógica monadica, Machine parallèle, Parallel machines, Pilotage ordinateur, Computer control, Control por ordenador, Portabilité, Portability, Portabilidad, Protocole TCP, Transmission control protocol, Protocolo TCP, Réactivité, Reactivity, Reactividad, Système exploitation, Operating system, Sistema operativo, Système réactif, Reactive system, Sistema reactivo, Système réparti, Distributed system, Sistema repartido, Sécurité, Safety, Seguridad, Traitement signal, Signal processing, Procesamiento señal
Document Type:
Conference Conference Paper
File Description:
text
Language:
English
Author Affiliations:
Yale University, Dept. of Computer Science, United States
Western State College, Computer Information Science, United States
ISSN:
0302-9743
Rights:
Copyright 2007 INIST-CNRS
CC BY 4.0
Sauf mention contraire ci-dessus, le contenu de cette notice bibliographique peut être utilisé dans le cadre d’une licence CC BY 4.0 Inist-CNRS / Unless otherwise stated above, the content of this bibliographic record may be used under a CC BY 4.0 licence by Inist-CNRS / A menos que se haya señalado antes, el contenido de este registro bibliográfico puede ser utilizado al amparo de una licencia CC BY 4.0 Inist-CNRS
Notes:
Computer science; theoretical automation; systems
Accession Number:
edscal.19131134
Database:
PASCAL Archive

Further Information

HPorter is a DSL embedded in Haskell for composing processes running on a parallel computer. Using arrows (a generalization of monads), one can wire together processes in a manner analogous to a signal-processing application. The processes themselves are typically existing C or C++ programs, but may also be programs written in a first-order sub-language in Haskell that supports basic arithmetic, trigonometric functions, and other related operations. In both cases, once the processes are wired together, the supporting Haskell implementation is out of the loop - imported C programs run unimpeded, the Haskell sub-language is compiled into C code, and all data paths run directly between C processes. But in addition, HPorter's event-driven reactivity permits reconfiguration of these tightly-coupled processes at any time, thus providing a degree of dynamism that is critical in many applications. The advantages of our approach over conventional scripting languages include a higher degree of type safety, a declarative style, dynamic reconfiguration of processes, having the full power of Haskell, and portability across operating systems. We have implemented HPorter both on the QNX operating system and using conventional TCP/IP sockets, and are using it in a practical application in Yale's Humanoid Robotics Laboratory, where the processes correspond to soft-real-time tasks such as computer vision, motor control, planning, and limb kinematics.