Philosophie d´anyflo

Philosophie d´anyflo


        Anyflo est un système que je développe depuis 1985, je le considère comme ma palette d’artiste. En continuelle modification il n’est ni stable ni exempt de bugs, mais il intègre les concepts les plus récents de la synthèse.
        Je décline toute responsabilité quant aux dysfonctionnements du logiciel. Il est protégé par l’A.P.P. (Agence pour la protection des programmes) sous le numéro :

APP IDDN.FR.001.090005.004.S.P.1986.000.10000


Son téléchargement est libre, son utilisation est gratuite, tous les fichiers sources sont accessibles. Des applications construites par les utilisateurs, envoyées à anyflo.mail@gmail.com, vérifiées et testées seront remises en ligne et disponibles gratuitement.


       Composition
       Accès
       Interpréteur
       Anyflo
       Applications

Composition

       Anyflo n´est pas un système graphique dédié mais un langage permettant de développer très rapidement des applications graphiques.
       Il se compose:
              D´un interpréteur du langage interne (proche du C).
              D´un module graphique.
              Éventuellement d´applications développées par l´utilisateur.
              Comme ancien enseignant dans la filière "Art et Technologie de l´Image" (A.T.I.) de l´Université Paris 8, dont l´un des principes de base est la "double compétence" (artistique et technique), je fais l´hypothèse que les utilisateurs sont intelligents et qu´ils préfèrent construire eux-même leurs propres applications (le système anyflo a d´ailleurs largement contribué à la formation des premiers étudiants d´A.T.I. dans les années 1985-1990).
       Une connaissance élémentaire de la programmation, une compréhension des principaux algorithmes de la synthèse d´images et de l´interactivité sont souhaitables mais ne sont pas indispensables (l´utilisation de ce système peut même contribuer à leur acquisition).
       Il est prévu que, lors de l´évolution du logiciel, de plus en plus de fichiers *.c soient disponibles dans le dossier anyflo, afin d´en faire un produit open sources.

Accès

       La version standard, en anglais, et une version française sont disponibles.
       Des versions spécifiques à une langue particulière peuvent être obtenues par une traduction partiellement automatique des fichiers env/*.h et des helps env/*.htm avec l´utilitaire translate.func.
Il sera nécessaire de traduire les textes des fichiers *.htm (les mots du langage ainsi que toutes les références par des liens sont automatiquement traduits).
       Une version "parlant" plusieurs langues simultanément (à l´exclusion de la documentation) s´obtient très simplement en sur définissant les noms de certaines commandes dans les fichiers koma.h et komb.h.
       La seule contrainte est que tous les mots du langages soient différents.
       La commande generate message("ttt") permet de traduire ttt dans une seconde langue L2 définie par voc2=L2 dans enva.h.
       Une fois téléchargée la dernière version d´anyflo est gratuitement et intégralement utilisable à plusieurs niveaux:

L´interpréteur

La compilation du code source en langage anyflo génére un pseudo assembleur directement interprétable en C, et donc indépendant du système et de la machine. Ce code source peut être:
       directement tapé après le prompt ? et suivi d´un ENTER
       ou être l´invocation d´une fonction f(p1,p2,...). Celle-ci peu être:
              présente en mémoire, par lecture d´un fichier f.func la contenant (écrit sous n´importe quel éditeur ne codant pas le texte), ou par son écriture dans l´éditeur d´anyflo.
              ou comme 1ère fonction d´un fichier portant le même nom f.func.

Anyflo

Niveaux

       Des expressions composées de commandes multiples et obéissant à la syntaxe du langage peuvent constituer des programmes.
       Au niveau le plus élémentaire une telle expression tapée après le ? de l´interpréteur et suivie d´un ENTER est directement interprétée et exécutée.
       À un niveau plus évolué un ensemble de telles expressions peuvent constituer des fonctions qui seront exécutés par invocation de leur nom, soit directement dans l´interpréteur, soit dans le corps d´autres fonctions.
       À un niveau plus évolué des fonctions peuvent être réunies dans plusieurs fichiers .func et former des programmes de complexités arbitraires (en utilisant des directives include).
       À un niveau encore plus évolué certaines fonctions (écrites en langage anyflo) peuvent être traduites en C et introduites dans l´interface soft utilb.c.

Les objets

       Les objets d´anyflo peuvent être dynamiquement construits, modifiés ou détruits permettant par exemple la programmation évolutive (avec des algorithmes génétiques) et/ou adaptative (avec des réseaux neuronaux adaptatifs) des animations, ce qui permet la réalisation d´installations interactives ayant ces propriétés.
       La création d´un objet de type obj et d´identificateur id s´écrit très simplement:
obj(id);
       La définition d´une propriété propr et de paramètres p sur un tel objet s´écrit:
propr obj(id)=p;
propr obj(id);
retourne p.
       Elle peut aussi être précisée à la création de l´´objet:
obj(id)propr(p);

Applications

Niveau 0

       N´importe quel utilisateur, quelles que soient ses compétences, peut travailler de façon transparente à partir d´une application xxx fournie ou développée par un programmeur. Il lui suffit pour cela de lancer le fichier java script xxx.js.

Niveau 1

       Un utilisateur n´ayant qu´une connaissance élémentaire du langage C peut développer lui-même, en langage anyflo, ses propres applications en s´aidant des helps, des démos et des exemples fournis.
       Un ensemble de programmes écrits en langage anyflo peuvent constituer un système auquel on donne un nom et qui sera lancé par l´évocation de ce nom dans un fichier java script.
       Toutes les démos ont été construites sur ce modèle.

Niveau 2

       Un utilisateur ayant de bonnes connaissances en programmation C peut traduire ses applications en C et les linker au logiciel ( en modifiant le fichier utilb.c et/ou en ajoutant de nouveaux fichiers C dans le dossier anyflo), puis en recompilant les fichiers modifiés et en relikant l´ensemble des objets et des librairies dans VisualC++), ce qui se traduit par un gain en performance de l´ordre de 5.

Niveau 3

       Pour participer au développement d´anyflo il faut pouvoir disposer des sources, suivre les protocoles standards, documenter les changements et les soumettre à des tests de validation. En cas de succès ces changements seront définitivement intégrés à la version téléchargeable.