Flowgorithm est un outil de création et modification graphiques de programmes informatiques sous forme d'algorigramme. Il permet ensuite aux programmeurs d'exécuter ces programmes tout en pouvant en suivre graphiquement le déroulement .
Cette approche vise à mettre en avant les algorithmes plutôt que la syntaxe d'un langage de programmation spécifique. L'algorigramme peut être traduit en différents langages de programmation.
Flowgorithm est un langage et un environnement de programmation conçu pour être uniquement un instrument d'apprentissage.
Flowgorithm est un « mot-valise » constitué de « Flowchart » et « Algorithm »[1]. C'est un logiciel propriétaire distribué gratuitement (freeware)[2]. L'environnement et le langage sont traduits en chinois, tchèque, anglais, français, galicien, allemand, hongrois, italien, portugais, espagnol et japonais.
Flowgorithm propose la plupart des notions courantes que l'on retrouve dans les langages de programmation, aussi bien au niveau des instructions sous forme graphique que des expressions évaluables :
Types de données : les entiers, les réels, les chaînes et les booléens
Voici un exemple qui reprend la chanson 99 Bottles of Beer. Le programme est constitué de la fonction principale Main et d'une fonction bottle (Integer number) qui retourne une chaîne avec ou sans "s" à bottle :
Flowgorithm comprend une fenêtre principale pour :
la construction de l'Algorigramme de la fonction principale ou et des autres fonctions définies
l'exécution du programme en mode débogage (pas à pas) ou en contrôlant la vitesse d'exécution du programme
L'utilisateur peut choisir un style de diagramme en sélectionnant un jeu de couleurs et un type de figures parmi l'ensemble de ceux proposés par le logiciel.
et des fenêtres annexes affichables à la demande :
Une fenêtre d'inspection des variables
Une fenêtre de dialogue utilisateur
Une fenêtre de code source généré :
Flowgorithm peut générer en temps réel le code source correspondant au programme dans de nombreux langages de programmation : C#, C++, Delphi/Pascal, Java, JavaScript, Lua, Perl, Python, QBasic, Ruby, Swift 2, Visual Basic. NET et Visual Basic for Applications (utilisé dans Microsoft Office)
Les programmes en Flowgorithm ne sont pas des programmes volumineux et complexes ; ils ne nécessitent pas l'utilisation d'un format compressé et/ou binaire. Les fichiers sont stockés dans un format XML simple[3] afin de faciliter le portage sur d'autres systèmes et de pouvoir être facilement utilisé par des outils tiers.
<?xml version="1.0"?><flowgorithmfileversion="1.7"><attributes><attributename="name"value="Age"/><attributename="authors"value="Devin Cook"/><attributename="about"value="A simple example of an If Statement"><attributename="saved"value="1/7/2015 11:27:10 PM"/></attributes><functionname="Main"type="None"variable=""><parameters/><body><declarename="age"type="Integer"array="False"size=""/><outputexpression=""Please enter your age""/><inputvariable="age"/><ifexpression="age >= 21"><then><outputexpression=""Kegger!""/></then><else><outputexpression=""Milk!""/></else></if></body></function></flowgorithm>