Contexte historique

Turbo Pascal 3 pour MS‑DOS a été publié en septembre 1986. Il s’agissait de la troisième version majeure d’un compilateur Pascal complet, incluant un éditeur intégré. À l’époque, les environnements de développement étaient généralement constitués de plusieurs exécutables distincts, ce qui faisait grimper la taille totale du package. La version 3.02, qui regroupe le compilateur et l’IDE, ne pèse que 39 731 octets, soit environ 39 KB.

Taille du binaire et architecture

Cette empreinte réduite résulte d’un code monolithique écrit en assembleur et en Pascal, sans dépendances dynamiques. Le compilateur génère du code machine directement dans la mémoire, évitant ainsi les bibliothèques d’exécution lourdes. Le modèle de mémoire de MS‑DOS (segmenté, 640 KB de RAM disponible) impose des contraintes strictes, incitant les développeurs à optimiser chaque instruction et chaque tableau de données. De plus, l’IDE était limité à des fonctions d’édition et de compilation, sans interface graphique ni support de projets complexes, ce qui réduit le nombre de ressources embarquées.

Comparaisons de taille en 2011

Pour mettre ce chiffre en perspective, l’auteur a comparé le binaire à plusieurs fichiers courants en octobre 2011. Le jQuery 1.6 minifié occupait 90 518 octets, plus du double du binaire Turbo Pascal. La page d’accueil de yahoo.com pesait 219 583 octets, soit près de six fois plus. Une image du iPhone 4S blanc sur apple.com mesurait 190 157 octets, tandis que le fichier d’en‑tête zlib.h du SDK OS X Lion était de 80 504 octets, légèrement supérieur au binaire Pascal. Même la commande touch sous OS X Lion, un utilitaire système très simple, faisait 44 016 octets, dépassant légèrement les 39 KB de Turbo Pascal. D’autres références incluent des cartes de référence Vim (47 508 octets) et le code compilé du parseur Erlang R14B02 (286 324 octets), tous bien au‑dessus de la taille du compilateur DOS.

Implications et limites

Ces comparaisons illustrent l’efficacité du logiciel des années 80, mais elles soulignent également les différences d’objectifs. Les applications modernes intègrent des bibliothèques tierces, du code JavaScript, des images et des métadonnées, ce qui gonfle inévitablement la taille. En revanche, Turbo Pascal 3 ne proposait ni support Unicode, ni gestion de fenêtres graphiques, ni runtime lourd, ce qui explique son empreinte minimale. Cette légèreté était un avantage sur les machines à ressources limitées, mais elle limitait la portabilité et les fonctionnalités avancées. Aujourd’hui, les compilateurs modernes comme GCC ou Clang dépassent largement le mégabyte, en partie à cause de l’optimisation pour des architectures 64 bits, du support de standards récents et de la génération de code de débogage. Ainsi, la taille du binaire de Turbo Pascal reste un repère historique de l’efficacité logicielle, mais elle ne doit pas être interprétée comme une mesure de performance ou de capacité fonctionnelle dans le contexte actuel.