Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:40  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Test de Strux
(Article écrit par Laurent Faillie et extrait d'Amiga News - avril 1994)


"Strux est un utilitaire qui permet de créer facilement la structure d'un programme". C'est ainsi qu'il est présenté dans sa documention. Il est d'origine allemande et est produit par Peppermint Computer Products.

Le ton est donné. Son but n'est pas de créer un code compilable mais uniquement le squelette du programme, qui est la partie la plus complexe dans la conception d'une application. C'est au programmeur de remplir les blancs... Il est livré sur une seule disquette qui contient deux versions (anglaise en allemande), et une documentation d'une cinquantaine de pages en anglais qui précise que le programme fonctionne sur n'importe quel Amiga sous AmigaOS 2.0 ou plus avec un minimum de 512 ko de mémoire...

Installation

Il n'y a absolument rien à faire, si ce n'est prendre le répertoire contenant la version choisie (strux_english) et la faire glisser dans le répertoire ou la destination choisie du disque dur. On peut aussi évidemment travailler sur une copie de la disquette. La documentation indique que Strux prend environ 200 ko (mais plus de 230 ko en réalité).

L'éditeur

Strux peut être lancé directement depuis le Workbench ou depuis le Shell. Grâce à des options, on peut choisir la langue utilisée (anglais ou allemand), le fichier à ouvrir par défaut, et si l'on veut qu'il utilise un écran public.

Strux

L'éditeur se présente sous la forme d'une simple fenêtre où tout est géré par des menus. On peut agrandir cette fenêtre jusqu'à la limite de l'écran, même en super haute résolution avec suraffichage !

Une aide en ligne peut être appelée à tout moment, simplement en cliquant sur la touche "Help" en sélectionnant l'item sur lequel nous voulons de l'aide. Et le meilleur, c'est que ça marche même avec PopUp-Menu... génial.

Je vais créer le programme de factorielle que j'ai décrit dans la présentation cet article. Add/Input et hop, une requête s'ouvre dans laquelle je tape l'action à faire : "Entrez un nombre :". Add/OutPut pour afficher le résultat, et enfin Add/SubRoutine/Fact pour le calcul.

Mais j'ai oublié le nom du programme ! Aucun problème : je remonte en dessus du premier bloc par un Ctrl-flèche haut et un Add/Programme me permet d'insérer le titre. Enfin, je finis le diagramme par un Add/Exit. Éditons maintenant la fonction fact(). On place le curseur sur le bloc "Fact". Refinement/refine Block : la fenêtre s'efface pour nous permettre d'éditer la nouvelle fonction. Si vous revenez au graphe principal, vous verrez que "Fact" a changé de couleur indiquant qu'il contient d'autres instructions.

Tout est vraiment très intuitif, et la documentation n'est vraiment utile que pour des actions bien spécifiques. Attention, une fonction sera générée dans le source mais uniquement parce que "Fact" est défini en tant que sous-routine. S'il avait été d'un autre type, le second graphe aurait été inséré dans le premier lors de la conversion.

Remarquez que dans "Fact", je place le résultat dans une variable temporaire, mais ce n'est que pour montrer que plusieurs actions peuvent être mises dans le même bloc. Il y a trois modes de représentation :

1. Nassi-Shneiderman qui est beaucoup utilisé dans les livres car il est très compact.

Strux

2. FlowChart plus classique et plus facile à appréhender.

Strux

3. Pseudo-Code qui correspond plus ou moins au langage d'analyse.

Strux

Pour chacun de ces modes, on peut choisir le type de police à utiliser. Comme les graphes demandent beaucoup de place, j'utilise une petite police (Teeny 8) et ça marche très bien. Les cadres et autres flèches changent de taille pour s'accorder avec la nouvelle police. En plus de son propre format, Strux (mais où vont-ils chercher des noms pareils ?) permet la sauvegarde en mode graphique (Brosses IFF) ou en texte, ce dernier mode étant la génération du source... L'impression est réalisée de manière très intelligente car le programme choisit une échelle suivant la taille du graphe.

Le seul gros reproche que je lui ferais est qu'il n'utilise qu'une seule fenêtre. Comme il ouvre un écran public, il est possible de lancer un second Strux sur le même écran : ils pourront communiquer grâce au presse-papiers. Dommage qu'il n'y ait pas de port ARexx pour automatiser ce processus... Pour en finir avec l'éditeur, je vous conseille de changer l'unité du presse-papiers qu'il utilise car certaines applications comme l'éditeur AZ n'apprécient pas de coller des données qui ne sont pas du texte...

Génération du code

Seul le squelette du programme étant généré, il ne faut donc pas s'attendre à avoir un code compilable, et je pensais même que ce module serait très quelconque.

Eh bien non, ici aussi, Strux innove encore avec une idée géniale. Au lieu d'incorporer des générateurs de C, de Pascal ou autres, il utilise des tables de traduction qui sont totalement redéfinissables par l'utilisateur et qui gèrent une sorte de formatage à la manière du printf() du C. Ainsi, pour reprendre l'exemple du manuel, une boucle "while" est défini par "while(%t{%b2%n}". "%t" est remplacé par la condition, "%b2" indique que l'identation est augmentée de 2, et le "%n" indique un retour à ligne.

Strux

Cinq tables sont fournies avec le programme : le C, le Pascal, le Pseudo-Code, ARexx et... l'AmigaBasic. On voit que les langages de haut-niveau les plus utilisés sont présents. Pour ceux qui manquent, comme le E par exemple, d'autres tables peuvent être construites facilement, mais par contre, je doute qu'un générateur de ce type pour le code assembleur soit vraiment fonctionnel...

L'importation

C'est la seule partie du programme qui m'a réellement déçu : théoriquement, Strux est capable de lire un source C ou Pascal pour en recréer les graphes. Les premiers tests sur mes propres sources C ont été plutôt infructueux : des fonctions étaient "oubliées", quand le système ne plantait pas tous simplement ! Était-ce une nouvelle manifestation de l'esprit malicieux de mon A1000 ? En fait, le problème provient des commentaires C++ (//) que Strux ne comprend pas. Une fois tous ces commentaires supprimés, le C est lu sans trop de problèmes.

En ce qui concerne le Pascal, impossible de lui faire lire correctement un source de PCQ, mais il faut dire que se compilateur DP n'est pas particulièrement standard. Attention, je ne critique pas le fait que Strux ne puisse pas lire tout les sources, car le "//" n'est pas standard en C normal, mais je trouve anormal que ceci plante le système : c'est un bogue. En plus, il se mélange totalement les pinceaux avec les switch()/case.

Dommage car cette fonction est très utile pour décortiquer les sources d'un autre programmeur.

Quelques mots sur la doc

Si j'en parle aussi tardivement, c'est qu'elle ne sert pas beaucoup car, comme je l'ai déjà dit, l'éditeur est vraiment très intuitif. La seule fois où j'ai vraiment eu à l'ouvrir a été pour créer ma propre table de traduction... Rien à reprocher au tutoriel, qui traite de la création d'une application en C et en Pascal.

Bilan

Ce que j'ai aimé :
  • Les trois modes de visualisation, et le fait qu'ils suivent vraiment la norme.
  • La possibilité de changer les polices.
  • Les graphes "pseudo-vectoriel", à l'écran comme à l'impression.
  • L'impression dont l'échelle varie automatiquement en fonction de la taille du graphe.
  • L'édition qui est très intelligente, que ce soit au clavier ou à la souris.
  • Le fait qu'il puisse créer son propre écran ou s'ouvrir sur un écran public.
  • Les tables de translation qui permettent de créer notre propre langage.
  • La documentation est bien faite et surtout, elle sait se faire oublier !
Ce qui peut être amélioré :
  • Le symbole "fin de procédure" qui ne correspond qu'au... break !
  • Exemple qu'en allemand.
  • Importation d'autres langages que le C et le Pascal.
  • Gestion inexistante de l'assembleur (mais je vois mal comment un langage de bas-niveau peut être géré par tel programme !).
  • La gestion du //.
  • Pas de gestion multifenêtre.
  • Un peu plus de couleur aurait facilité la lecture des graphes.
  • L'impression ne gère que le monochrome.
  • Utilisant un Workbench avec suraffichage, j'aurais aimé que le nouvel écran prenne les dimensions de ce dernier.
  • Un petit port ARexx ?
Ce que je n'ai vraiment pas aimé :
  • Que Strux se plante lorsque l'on importe un source qu'il ne comprend pas, comme du C avec des commentaires C++.
Il n'y a pas encore de distributeur pour la France mais mon petit doigt me dit que ça ne devrait pas tarder. Une version démo se trouve sur Aminet et peut-être sur certains BBS (Ramses ?). Strux est disponible auprès de son auteur pour 98 DM (+12 DM pour les frais d'envoi ) soit environ 400 FF : PCP (Andreas Günther), Alferner Weg 10. D-33100 Paderborn, Allemagne.

Nom : Strux.
Développeur : Peppermint Computer Products (Andreas Guenther).
Genre : aide à la programmation.
Date : 1993.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire, AmigaOS 2.0.
Licence : commercial.
Prix : 110 DM.


[Retour en haut] / [Retour aux articles]