Obligement - L'Amiga au maximum

Jeudi 27 juillet 2017 - 06:42  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : C - vérification du code
(Article écrit par Xavier Leclercq et extrait d'Amiga News - mai 1992)


Pourquoi programmer en C ? La réponse n'est pas à priori si évidente car l'assembleur est plus rapide et plus simple à comprendre pour le débutant (du moins c'est mon point de vue). Mais le C permet la portabilité la source. Cela signifie qu'en théorie un programme C tournant sur Amiga peut s'adapter facilement sur d'autres ordinateurs. En pratique, cette portabilité demande un effort supplémentaire de la part du programmeur qui la plupart du temps préfère l'ignorer. L'affaire se complique lorsque l'on constate qu'un compilateur X ne réagit pas de la même manière qu'un compilateur Y... Il existe bien une norme internationale établie par l'American National Standards Institute (ANSI) mais il faut encore trouver "le" compilateur qui affirme être compatible avec celle-ci et qui le prouve...

Heureusement, vous pouvez vous procurer depuis quelque temps un compilateur digne d'ANSI pour pas cher et qui peut rapporter gros : le DICE. C'est donc ce noble compilateur que je vous incite vivement à utiliser. Il est gratuit (du moins pour la version DP qui se trouve sur l'AmigaLibDisk numéro 466 de M. Fred Fish), rapide, moins "lourd" et plus simple (ce qui est ici une qualité) que ces confrères du commerce.

Il est évident qu'il vaut mieux utiliser la norme autant que possible et éviter par exemple, pour des opérations sur fichiers, d'ouvrir la dos.library. De plus, DICE accepte les prototypes de fonctions alors autant les utiliser au maximum !

Quelques lignes concernant l'implantation

Une configuration A500+, 2 Mo de mémoire et un disque dur est la configuration bienvenue.

Dans votre shell-startup, insérez

>alias DICE dh1: sources/dice/progxl/go

Le fichier script étant directement exécutable grâce à la commande "protect go srwed".

Le script peut contenir la séquence d'instruction CLI suivante :

assign DINCLUDE: dh1:sources/dice/include
assign DLIB: dh1:sources/dice/dlib
resident dh1:sources/dice/bin/DAS ; si vous avez 2 Mo de mémoire
resident dh1:sources/dice/bin/DC1 ; vous pouvez rendre certaines commandes
resident dh1:sources/dice/bin/DCC ; résidentes, ce qui augmentera la vitesse
resident dh1:sources/dice/bin/DLINK ; de compilation
resident dh1:sources/dice/bin/DCPP
cd dh1:sources/dice/progxl ; progxl est le répertoire courant de travail

Vérification du code

Ensuite, encoder vos listings. Une erreur de frappe est toujours possible lorsque fébrilement vos petits doigts courageux encodent. Le drame suivant peut alors se dérouler :

#include <stdio.h>
main() { pust ("chaîne envoyée à stdout"); }

...à la place du code source correct :

#include <stdio.h>
main() { puts ("chaîne envoyée à stdout"); }

Mais le compilateur est sans pitié et vous affichera "undefined symbol: pust". Une manière de procéder serait de relire avant compilation le code source mais bien souvent cette tâche se révèle très difficile car il se peut que l'on relise x fois une ligne mal encodée sans trouver la faute... Il existe une méthode du nom de "méthode de la lettre clé" pour y remédier qui :
  • Multiplie la valeur lue par des puissances de 2 successives.
  • Additionne les résultats.
  • Divise la somme obtenue par le nombre qui correspond à l'addition de la valeur des puissances de 2 successives.
  • Ignore les caractères <= à la valeur ASCII d'un espacement (0x20).
Donc cette méthode permet d'ignorer les espaces parasites et de contrôler l'inversion possible de caractères.

Exemple : RT inversion, RO niversion, SM inversino, RT inversion Voici le code source et ses caractères de contrôle :

C

Emploi : encoder chaque ligne (sans les codes de contrôle). Puis tapez :

1>CHKSCR CHKSCR.0 CHKSCR.CHK

Le "CHKSCR.CHK" contient le listing source avec les codes de contrôle comme la source proposée ci-dessus. Les codes imprimés dans votre Amiga News doivent correspondre aux codes du "CHKSCR.CHK".

"CHKSCR" peut-être utilisé avec n'importe quel texte ASCII : une source C ou BASIC, FORTRAN, PCQ...


[Retour en haut] / [Retour aux articles]