Section courante

A propos

Section administrative du site

Fiche technique
Système d'exploitation : Atari ST
Auteur : Megamax, Inc.
Date de publication : 1986
Catégorie : Langage C

Sommaire

Le logiciel Megamax C, est un compilateur C pour Atari ST vendu pour 199,85 $ en 1986, est une implémentation Kernighan & Ritchie complète du langage de programmation C. Il prend en charge la virgule flottante, les recouvrements, la récursivité, le traitement par lots et les bibliothèques personnalisées. Mis à part l'Alcyon C de Digital Research Inc. (DRI), venant dans l'ensemble de développement Atari ST à 300 $ d'Atari, le Megamax C est le seul langage de programmation C étant livré avec un ensemble de construction de ressources créant des objets GEM tels que des menus, des boîtes de dialogue et des icônes. Il prend également en charge toutes les routines AES, VDI et GEM.

Le Megamax C dispose d'un interpréteur de commande d'environnement faisant du développement de programmes un plaisir. L'interpréteur de commande prend en charge et permet l'accès à l'éditeur, au compilateur, à l'éditeur de liens, au bibliothèque et à tout autre programme pouvant s'exécuter dans TOS. Le lancement des programmes se fait par le biais de menus déroulants.

L'interpréteur de commande a une fonction de localisation vous permettant d'indiquer au système où vous avez placé des programmes de développement tels que le compilateur et l'éditeur de liens, ainsi qu'un fichier MAKE contenant les commandes de compilation et de liaison pour un programme spécifique. L'interpréteur de commande prend ses commandes à partir du fichier MAKE et s'exécute automatiquement, permettant une compilation et un lien en un seul clic de souris.

Pour utiliser ce fichier, déroulez le menu des utilitaires et cliquez sur la ligne MAKE. Si des modifications ont été apportées, l'interpréteur de commande compile et lie le programme. Ainsi le développement dans l'interpréteur de commande est efficace : vous cliquez sur l'éditeur, modifiez votre programme, quittez l'éditeur puis cliquez sur le fichier MAKE. Les erreurs seraient placées dans un fichier d'erreurs, annulant le processus MAKE, et vous reviendriez à l'éditeur avec deux écrans apparaissant automatiquement. Le premier écran affiche le code source du programme que vous étiez en train de compiler et le second affiche le fichier d'erreur. Cela vous permet de corriger les erreurs tout en consultant le fichier d'erreurs. L'interpréteur de commande vous permet également de renommer ou de supprimer des fichiers et d'utiliser les accessoires de bureau que vous utilisez.

Six fois plus rapide

L'une des premières choses que vous voulez savoir sur un langage de programmation est sa vitesse. Si vous l'utilisez sur un système de disque de 3,5 pouces et un programme Sieve pour comparer ce compilateur à Alcyon C. L'Alcyon C a compilé et lié le programme Sieve en six minutes et sept secondes. Le code résultant faisait 11 852 octets et prenait 2,47 secondes pour s'exécuter. Le Megamax C a compilé le Sieve en une minute et 34 secondes - presque six fois plus vite que l'Alcyon C de DRI. Le code faisait 6 049 octets - un peu plus de la moitié de la longueur de la compilation DRI. Et il a fallu 2,28 secondes pour l'exécuter.

Si vous comparé le temps de compilation et de liaison du programme Apskel.C (squelette d'application) fourni avec les deux paquets. Le compilateur DRI a pris quatre minutes et 16 secondes, produisant un code objet de 6 086 octets de long. Le compilateur Megamax C s'est exécuté en 41 secondes et a produit 4 808 octets de code objet. L'éditeur de liens fourni par DRI a mis deux minutes et 17 secondes pour établir la liaison, produisant un programme de 4 315 octets. L'éditeur de liens Megamax a pris 59 secondes et produit un programme de 4 058 octets. Avec Megamax C, vous pouvez confortablement faire du développement sur un seul disque. Le système DRI nécessite deux disques ou un disque dur.

L'éditeur excelle

L'éditeur piloté par la souris est facile à utiliser. La conception de l'éditeur montre qu'il a fait l'objet de beaucoup de réflexion. Les principales commandes sont accessibles depuis les menus déroulants et le clavier. Vous pouvez ouvrir plusieurs fenêtres de fichiers à la fois et déplacer des informations entre elles. Les fenêtres peuvent être en mode Overlap ou Tile (où elles ne se chevauchent pas). Vous pouvez couper et coller des blocs, supprimer des blocs marqués ou décaler le texte marqué vers la droite ou vers la gauche.

Une vraie bouée de sauvetage est le tampon de la touche Undo - si, par exemple, vous avez effacé la moitié de votre programme, appuyez simplement sur la touche Undo et tout revient. Le menu de configuration de l'éditeur permet de le personnaliser selon les goûts de presque tout le monde. Vous pouvez définir la taille des onglets, basculer le mode d'indentation automatique, choisir la fonction d'enregistrement automatique, rendre les onglets visibles ou activer et désactiver la sensibilité à la casse. La fonction de sauvegarde automatique est pratique si vous vivez dans un endroit où l'électricité n'est pas trop stable. L'éditeur prend en charge toutes les fonctionnalités de recherche et de remplacement ainsi qu'une commande de ligne GOTO. Il dispose également d'un tableau intégré des opérateurs C et de leur priorité, ce qui ajoute une touche agréable. Enfin, il y a un écran d'information vous donnant des statistiques sur le programme que vous êtes en train d'éditer.

Passage unique

L'une des principales raisons de la vitesse du compilateur Megamax C est qu'il s'agit d'un compilateur à passage unique (PASS 1). Il n'a besoin de lire qu'une seule fois votre code source pour générer du code pour l'éditeur de liens. C'est assez différent de l'Alcyon C de DRI, étant un compilateur à trois passages. Les compilateurs à passage unique ont souvent des restrictions sur la façon dont vous devez placer votre code (le plus souvent, une fonction doit être définie avant de pouvoir être utilisée), toutefois le Megamax C semble pas concerné par problème.

Le compilateur Megamax C permet également le code d'assemblage en ligne, vous n'avez donc pas besoin d'acheter un assembleur pour les routines urgentes. Contrairement à d'autres langages, l'assembleur n'est pas réduit et ne vous oblige pas non plus à faire la majeure partie de l'assemblage à la main. Au contraire, il est complet. Tapez simplement ASM et une accolade gauche. À partir de ce moment, jusqu'à ce qu'une accolade droite soit rencontrée, écrivez comme si vous étiez dans un assembleur, et le compilateur agira comme tel.

Comme l'assembleur fait partie du compilateur, il présente deux avantages majeurs. Tout d'abord, le code est efficace et bien intégré au programme. Deuxièmement, toutes les variables auxquelles une fonction aurait normalement accès sont disponibles pour le code assembleur, ce qui simplifie grandement la transmission des données à la routine assembleur.

Lien de bibliothèque

L'éditeur de liens est plus complexe que l'homologue DRI et il permet l'utilisation de plusieurs bibliothèques. Outre la bibliothèque système par défaut, vous pouvez ajouter vos propres bibliothèques personnalisées contenant vos fonctions et vos routines. L'éditeur de liens ne se chargera que dans les modules de bibliothèque dont le code a besoin. Ainsi, vos programmes n'utilisent que les routines nécessaires, au lieu d'y ajouter le code de toute la bibliothèque. L'éditeur de liens gère automatiquement le processus de recouvrements. Vous n'avez pas besoin de spécifier autre chose dans votre code que le mot "overlay". Le linker prend soin de tous les problématiques.

L'éditeur de liens vous donne également la priorité sur les fonctions des bibliothèques. Tout nom que vous définissez dans votre programme est prioritaire sur celui de la bibliothèque, vous pouvez donc personnaliser les fonctions en fonction des besoins. Mais le coût de tous ces avantages est la vitesse. L'éditeur de liens Megamax n'était que deux fois plus rapide que l'éditeur de liens DRI.

Comme si toutes ces fonctionnalités ne suffisaient pas, le paquet Megamax C comprend également un améliorant de code (augmentation de la vitesse d'environ 3 %, réduction de la taille d'environ 10 %), un désassembleur et un bibliothécaire pour configurer vos propres bibliothèques.

L'ensemble de construction de ressources est également une belle surprise. Il semble plus facile à utiliser que la version Atari. La documentation est complète et comprend tous les appels système l'Atari ST. Mais ne vous attendez pas à apprendre le langage ou le système d'interruption du manuel, il a été écrit pour fournir des informations sur la mise en oeuvre, pas pour enseigner.

L'inconvénient de 32 Ko

Il y a cependant quelques inconvénients à Megamax C. Il ne peut pas se compiler en blocs de plus de 32 Ko, en raison des limites de l'ordinateur à partir duquel le programme a été porté. Cela signifie que vous devez utiliser des recouvrements pour les programmes volumineux.

Les tableaux ne peuvent pas non plus dépasser 32 Ko, donc déplacer un écran entier devient un peu délicat si vous prévoyez de le faire dans un tableau. Mais vous pouvez accéder à plus ou moins 2 milliards d'octets en utilisant des pointeurs, ce n'est donc pas très difficile à surmonter.

Si vous envisagez de programmer en C sur l'Atari ST, ne pensez même pas à un autre compilateur C. Celui-ci a tout pour plaire. La facilité d'utilisation et la rapidité de compilation paieraient pour Megamax C juste dans le temps gagné.




Dernière mise à jour : Jeudi, le 20 janvier 2022