Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:35  

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 P2C
(Article écrit par Cédric Beust et extrait d'A-News (Amiga News) - juillet 1990)


Pour les allergiques au C

Voici un traducteur de programmes Pascal en C. C'est bien pensé, pas vrai ? Ainsi donc, comme son nom l'indique, P2C (prenez l'accent yankee et prononcez "pitouci") prend un programme Pascal et le transforme en son équivalent en C. Les programmes obtenus sont cent pour cent fonctionnels et le source est très lisible, étant donné que P2C a été écrit avec pour but principal de donner une base de travail raisonnable aux personnes désireuses de récrire leurs programmes en C.

Il faut préciser que ce programme sort un peu des DP ordinaires. Pas de panique, il est entièrement DP mais ce que je veux dire est qu'il ne s'agit pas là d'un utilitaire écrit à la va-vite par un passionné. P2C existe depuis quelques années déjà sur Unix, et a été porté très récemment sur Amiga. L'effet Unix est le suivant : étant donné que des milliers de gens travaillent sous cet environnement, on peut assurer avec très peu de chances de se tromper que les programmes qui y tournent sont intégralement dépourvus de bogues. P2C n'échappe pas à la règle : c'est un traducteur qui a déjà fait ses preuves et qui est rodé à la perfection (bon, d'accord, un programme sans bogue, ça n'existe pas. Disons que vous aurez du mal à les trouver, quoi. Ce qui revient au même).

Le tour du propriétaire

P2C comprend un nombre impressionnant de dialectes Pascal. Citons en vrac HP Pascal, Turbo/UCSD Pascal, DEC VAX Pascal, Oregon Software Pascal/2, Macintosh Programmer's Workshop Pascal et Sun/Berkeley Pascal. La syntaxe de Modula-2 est également autorisée. Il possède pour chacun des Pascal cités des directives de traduction particulières afin de produire un code le plus proche possible de l'original.

Bien, me direz-vous, mais si P2C a été initialement conçu dans un environnement Unix, dans quelle mesure peut-on l'utiliser sur Amiga ? Bien entendu, P2C n'est pas vraiment capable de comprendre ce qu'il traduit. S'il rencontre quelque chose de bizarre, il le signale dans le code produit mais n'en fait pas une maladie pour autant. Par exemple, sur le programme suivant qui a largement de quoi rendre perplexe n'importe quel compilateur :

program idiot;

begin IntuitionBase := OpenLibrary ("intuition.library",0);
CloseLibrary(IntuitionBase);
end.

P2C ne se démonte pas et, après vous avoir averti des quelques erreurs qui traînent, vous pond le programme C suivant :

PC2

Vous remarquerez au passage que P2C émaille son oeuvre des erreurs et avertissements qu'il a détectés au cours de sa compilation. Cela rend la mise au point de syntaxes ambiguës très aisée. Il a d'autre part pris la liberté de déclarer lui-même la variable que j'avais un peu volontairement oubliée...

Vous n'arriverez pas à piéger P2C sur les points-clés de Pascal qui ne peuvent être traduits tels quels en C : les procédures emboîtées. Rappelons qu'en Pascal, il est possible d'emboîter des procédures et que les procédures les plus emboîtées ont toujours accès aux variables locales et paramètres des procédures emboîtantes (respirez un bon coup et relisez calmement).

En C, les choses sont beaucoup plus simples, et il faut donc respecter scrupuleusement cette sémantique, certaines variables pouvant en cacher d'autres (sic). Je n'entrerai pas dans les détails de l'élégante solution utilisée par P2C, mais je me contenterai de vous dire que celle-ci reste très lisible pour peu que vous ayez certaines notions de liens statiques et autres petites joyeusetés de la science de la compilation (dans le cas contraire, n'utilisez pas de procédures emboîtées, je pense que cela apporte beaucoup plus de problèmes que cela n'en résout).

D'autre part, la sémantique de Pascal est tellement confuse que les quelques erreurs que P2C commet parfois peuvent être largement ignorées (par exemple, saviez-vous qu'en Pascal, un "for i := 1 to 0" ne change pas la valeur de la variable "i" ? C'est-à-dire qu'elle n'est pas initialisée à "1" si on ne rentre pas dans la boucle).

Autre point très intéressant de cette excellente distribution, les sources sont intégralement livrés. Pour être plus précis, l'archive (du type .Lzh) fait 750 ko et occupe deux Mo une fois désarchivée... D'autre part, P2C accepte d'être paramétré au cas où un nouvel idiome Pascal viendrait à faire son apparition (on peut cauchemarder).

Bref

On a affaire à excellent DP qui aidera sans aucun doute les indécis à évoluer vers un langage qui, s'il n'est pas forcément meilleur, est incontestablement plus fonctionnel que Pascal.

Nom : P2C.
Développeur : Dave Gillespie, portage Amiga par G. R. Walter.
Genre : outil de programmation.
Date : 1990.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : gratuiciel.
Téléchargement : Aminet.


[Retour en haut] / [Retour aux articles]