INTERCAL - Définition et Explications

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

INTERCAL, est une parodie de langage de programmation, et la référence canonique des langages de programmation ésotériques. Ce langage a été créé par Don Woods et James M. Lyon, deux étudiants de l'Université de Princeton (L'université de Princeton (Princeton University) est située dans la ville de Princeton...), en 1972. Il tourne en dérision certains aspects des langages de programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent...) de l'époque, ainsi que la prolifération des propositions de construction de langage et de notation dans les années 1960. En conséquence, son humour peut paraître plutôt désuet pour des lecteurs modernes ayant grandi avec le C ou le Java.

Jimbo Lyon, un des auteurs d'INTERCAL (INTERCAL, est une parodie de langage de programmation, et la référence canonique des...)

Selon le manuel original des auteurs,

« Le nom complet du compilateur (Un compilateur est un programme informatique qui traduit un langage, le langage source, en un...) est "Langage compilé n'ayant aucun acronyme prononçable", ce que, pour d'évidentes raisons, nous abrégerons en "INTERCAL". »

Il existe actuellement deux versions maintenues d'INTERCAL : C-INTERCAL (anciennement maintenu par Eric S. Raymond), et CLC-INTERCAL, maintenu par Claudio Calvelli.

Introduction

INTERCAL a pour vocation d'être complètement (Le complètement ou complètement automatique, ou encore par anglicisme complétion ou...) différent de tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou...) autre langage informatique (On appelle langage informatique un langage formel utilisé lors de la conception, la mise en...). Les opérations courantes dans d'autres langages ont une syntaxe cryptique et redondante en INTERCAL. D'après le Manuel de Référence d'INTERCAL :

«  C'est un fait bien connu et amplement démontré qu'une personne dont le travail est incompréhensible est tenue en haute estime. Par exemple, si quelqu'un devait affirmer que la manière la plus simple de stocker la valeur 65536 dans une variable (En mathématiques et en logique, une variable est représentée par un symbole. Elle...) 32-bit en INTERCAL est :

DO :1 <- #0¢#256
N'importe quel programmeur (En informatique, un développeur (ou programmeur) est un informaticien qui réalise du logiciel en...) intelligent dirait que c'est absurde. Comme il s'agit effectivement de la méthode la plus simple, ce programmeur prendrait instantanément un air (L'air est le mélange de gaz constituant l'atmosphère de la Terre. Il est inodore et...) ahuri devant son responsable, qui aurait eu de toute évidence la bonne idée d'apparaître à ce moment-là, comme les responsables ont l'habitude de le faire. L'effet n'en serait pas moins radical si le programmeur avait eu raison.

 »

Le Manuel de Référence d'INTERCAL contient de nombreuses instructions paradoxales, insensées, ou autrement humoristiques (à la manière du jeu Kamoulox):

«  Attention ! Ne confondez en aucune circonstance la grille ( Un grille-pain est un petit appareil électroménager. Une grille écran est un...) avec l'opérateur (Le mot opérateur est employé dans les domaines :) d'interpolation, excepté en cas de circonstances pouvant porter à confusion !  »

Le manuel contient également une "amygdale", comme expliqué dans cette note de bas de page: "4) Comme tous les autres manuels de référence ont des appendices, il a été décidé que le manuel d'INTERCAL devrait contenir un autre type d'organe (Un organe est un ensemble de tissus concourant à la réalisation d'une fonction...) retirable."

Le "circuit diagramme (Un diagramme est une représentation visuelle simplifiée et structurée des concepts, des idées,...)" du manuel de Référence INTERCAL, censé expliquer le fonctionnement de l'opérateur "select".

INTERCAL possède de nombreuses autres fonctionnalités prévues pour le rendre encore plus esthétiquement déplaisant au programmeur : il utilise des impératifs comme "READ OUT" ("lit à voix haute"), "IGNORE", "FORGET" ("oublie"), et des modificateurs comme "PLEASE" ("s'il te plaît"). Ce dernier mot-clé fournit deux raisons au compilateur pour rejeter le programme : si "PLEASE" n'apparaît pas assez souvent, le programme est considéré comme insuffisamment poli, et le message (La théorie de l'information fut mise au point pour déterminer mathématiquement le taux...) d'erreur en fait part ; s'il apparaît trop souvent, le programme peut être rejeté pour cause d'obséquiosité. Malgré le fait que cette fonctionnalité existât dans le compilateur INTERCAL d'origine, elle n'était pas documentée.

Le manuel d'INTERCAL donne des noms inhabituels à tous les caractères ASCII non alphanumériques : les apostrophes et les guillemets sont des "étincelles" et des "oreilles de lapin (Le mot lapin (/lapε̃/) est un terme très général qui désigne plus...)" respectivement (à l'exception de l'esperluette : comme l'affirme le Jargon File, "que pourrait-il bien exister de plus idiot ?"). L'opérateur d'assignation, représenté par un signe d'égalité (une "demi-grille" selon INTERCAL) dans de nombreux autres langages de programmation, est en INTERCAL une flèche gauche, "<-", à laquelle on se réfère sous le nom de "reçoit", et est faite avec un "angle" et un "ver".

L'implémentation (Le mot implantation peut avoir plusieurs significations :) originelle de Princeton utilisait des cartes perforées et le jeu de caractères EBCDIC. Afin de permettre à INTERCAL de fonctionner sur des ordinateurs utilisant l'ASCII, des substitutions durent être faites sur deux caractères : $ remplaça ¢ en tant qu'opérateur MINGLE ("mélanger"), lequel "représente le coût croissant du logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements...) comparativement au matériel", et ? remplaça ∀ comme opérateur ou exclusif unaire pour "exprimer correctement la réaction de l'individu (Le Wiktionnaire est un projet de dictionnaire libre et gratuit similaire à Wikipédia (tous deux...) moyen lors de sa première rencontre avec un ou exclusif unaire". Dans les versions récentes de C-INTERCAL, les anciens opérateurs sont supportés en tant qu'alternatives ; et les programmes INTERCAL peuvent maintenant être encodés en ASCII, Latin-1, ou UTF-8 (UTF-8 (UCS transformation format 8 bits) est un format de codage de caractères. Il permet de...).

Le groupe de discussion Usenet alt.lang.intercal est dévoué à l'étude et à l'appréciation d'INTERCAL avec d'autres langages ésotériques.

Malgré le fait que le langage soit intentionnellement obtus et bavard, INTERCAL est néanmoins Turing-complet : pour peu qu'il dispose d'assez de mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir...), INTERCAL peut résoudre n'importe quel problème qu'une machine de Turing (Une machine de Turing est un modèle abstrait du fonctionnement des appareils mécaniques...) universelle puisse résoudre. La plupart des implémentations d'INTERCAL le font très lentement, néanmoins. Un test de performance (Un test de performance ou benchmark est un test dont l'objectif est de déterminer la performance...) basé sur un crible d'Eratosthène, calculant tous les nombres premiers inférieurs à 65536, a été testé sur un ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant...) Sun (Sun Microsystems (NASDAQ : SUNW) est un constructeur d'ordinateurs et un éditeur de...) SPARCStation-1. En C, il fallut moins d'une demi-seconde ; le même programme en INTERCAL prit un peu plus de dix-sept heures (L'heure est une unité de mesure  :).

Il convient de noter qu'à peu près tous les langages de programmation autorisent des horreurs de notation aussi grandes ou pires que celles d'INTERCAL, comme le démontrent des concours comme l'International Obfuscated C Code Contest. Cependant, il s'agit généralement d'efforts intentionnels pour créer du code illisible, en contraste avec le design (Le design (la stylique en français) est un domaine visant à la création d'objets,...) même d'INTERCAL, qui force (Le mot force peut désigner un pouvoir mécanique sur les choses, et aussi, métaphoriquement, un...) virtuellement tout code à être illisible.

Selon le manuel d'INTERCAL, "l'objectif en concevant INTERCAL était de n'avoir aucun antécédent", à supposer ni en fonctionnalités de contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de...) de flux (Le mot flux (du latin fluxus, écoulement) désigne en général un ensemble d'éléments...), ni en opérateurs de manipulation de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent...). Les concepteurs ont presque réussi ; le seul antécédent connu est une instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une...) machine dans un ordinateur central BESM-6 soviétique, sorti en 1967, et qui est effectivement équivalente à l'opérateur SELECT d'INTERCAL.

Page générée en 0.380 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique