-
Notifications
You must be signed in to change notification settings - Fork 3
Theory
jukea edited this page Feb 1, 2013
·
5 revisions
Perhaps understanding better the theory of dataflow programming would allow us to make a better software.
- Very good overview of Dataflow
- The Essence of Dataflow Programming Very interesting article that sheds light on dataflow systems
- A Multi-Periodic Synchronous Data-Flow Language Another article more closely related to our software because it takes into account multi-periodic systems (eg. audio and video). It's very complicated.
- LUSTRE is a dataflow programming language, maybe worth considering
- http://lambda-the-ultimate.org/node/3316
- http://www.dewdrop-world.net/words/blog5.php/2011/06/23/reflections-on-max-msp
- Miller Puckette's looks back at MAX : http://crca.ucsd.edu/~msp/Publications/dartmouth-reprint.dir/
- http://post.monome.org/comments.php?DiscussionID=15137
- http://www.creativeapplications.net/theory/patch-schematics-%E2%80%93-the-aesthetics-of-constraint-best-practices-theory/
- parallélisable (avec possibilité de prioriser l'audio)
- flows synchronisés
- indépendance de la localisation ou de l'ordre d'ajout des acteurs
- ce doit être aisé pour un utilisateur qui ne connaît rien sur la concurrence, le typage, etc. de comprendre les concepts de base et de pouvoir utiliser le logiciel
- modifications au graphe en temps réel
- feedback
- multi-plateforme (Windows, Linux, OSX et éventuellement Android et iOS)
- acteurs composés
- concepts avancés
- récursion (acteur composé qui s'appelle lui-même)
- lambda-calcul
- concepts avancés facultatifs
- timeline
Quels sont les avantages et inconvénients de ...
- ... data-driven (push) vs demand-driven (pull)?
- ... event-driven vs signal driven?
- ... synchrone vs asynchrone?
- parallélisation de parties du graphe
- comment s'assurer que le timing est "tight"
- comment prioriser certains types de données (eg. audio)
Quel est le lien entre le dataflow et les langages fonctionnels?
Suggestions de lectures
- un bon livre sur le sujet
- articles de référence
- Suggestion: idée qu'il y ait un langage sous-jacent qui permette d'exprimer les graphes de façon scriptable
- Exemple: FrTime un langage de la famille Scheme qui permet de manipuler des streams
- Exprimé le problème du balancement de la charge sur les CPUs dans un contexte de multithreading
- Intéressé à participer à un éventuel projet de recherche