Utilisateur:Monsieur Brouillon/MDR

Un article de la désencyclopédie.
Aller à la navigation Aller à la recherche

MDR est un langage de programmation impérative dérivant du LOLCODE, son prédecesseur.

Historique

Jean-Mishell Leroquesor en 2004.

Le langage MDR, signifiant « Méthode de Developpement Rapide » a été mis au point en 2001 par Jean-Mishell Leroquesor, professeur de technologie au collège Saint Jean Hulst du département des Yvelines en France. Leroquesor inventa ce langage dans le but de clarifier et de rendre accessible à tout néophyte le monde merveilleux de la programmation impérative et procédurale, lorsqu'il constata les difficultés que rencontraient ses jeunes élèves de 5ème à écrire du code Assembleur x86 AT&T lisible et auto-maintenable.

Etant un langage interprété, la principale méthode pour exécuter des programmes écrits en MDR est d'utiliser l'interpréteur kevin, developpé par Leroquesor lui-même et disponible dans le MDK[1] (dernière mise à jour le 23 février 2009). Accessoirement, MDR peut aussi être compilé pour les architectures x86 32 bits. Le compilateur le plus connu et le plus utilisé reste grc pour gnu random compiler, compilateur libre GNU (inclus dans la GNU Compiler Collection) que certains surnomment taquinement gé rien compris du fait de sa complexité d'utilisation.

Utilisation de grc en console:
grc -W -Wall -Yk -std=grc04 -f03 -f04 --optimize-l -fKd --ERLJG -bordel -mais -m2 -c -Est -_11 -quoi -t outes -ces --putains -vv -d --options -?jj -o prg -non -mais -ils -se -foutent -de -notre -gueule -a -la -FSF -ou -quoi -?k programme.mdr

MDR a fait l'objet d'une standardisation en 2004 par l'ISO (International Skyblog Organisation) et s'est vu attribué la norme ISO 23002 (disponible ici)

Syntaxe

Chaque instruction en MDR est terminée par le mot-clé lol. Le point d'entrée du programme est définie par un bloc d'instructions commencant par le mot-clé kikoo et terminé par a+biz. Voici un exemple :

xD !/bin/kevin
kikoo
    tro mdr vanessa c !tro 1 tepu! lol
    tavu vanessa lol
a+biz

Dans cet exemple, le programme déclare une chaîne de caractère constante nommée vanessa et lui affecte la chaîne "tro 1 tepu". Ensuite, cette chaîne est envoyée sur la sortie standard (à savoir l'écran). Notez ici la déclaration de commentaire, qui s'effectue grâce au mot-clé xD, le reste de la ligne étant ignoré.

Déclaration de variables et typage

MDR est un langage faiblement typé. Les variables sont déclarées avec le mot-clé mdr et doivent être initialisées à leur création grâce à l'opérateur d'affectation c.

Syntaxe : mdr <identifier> c <value> lol

Pour les constantes, il suffit de rajouter tro en début de ligne. Exemple :

xD déclaration d'une variable constante unlapin de type booléen initialisée à false (par analogie à C++ ou Java)
tro mdr unlapin c tigen lol

Types

TypeEquivalent JavaExemple en MDRRemarque(s)
entierintmdr monQI c 34 lolLe langage étant adapté aux jeunes, une variable de type entier ne peut excéder 364
réelfloat ou doubleDéprécié depuis 2004 car non utilisé
booléenbooleanmdr lémath c relou loltigen pour vrai et relou pour faux
chaîne de caractèresStringmdr TH c !grav dla bal! lol ! délimite les chaînes de caractère. La chaîne vide se symbolise par !!
indéfinivoidmdr desancycopédi c o0? lolLa valeur nulle est o0?

Opérateurs

Un ouvrage conseillé à tous ceux qui souhaiteraient en savoir plus sur la polymorphie.

Toujours dans l'esprit que ce langage puisse être compris par votre fils de 5 ans, les opérateurs mathématiques se limitent à l'addition et à la soustraction. Aucune priorité n'est définie pour les opérateurs. MDR part du principe que chaque instruction n'en contient qu'un seul au maximum, toujours pour la raison évoquée précédemment. Voici une liste des opérateurs mathématiques et logiques en MDR :

  • Opérateurs mathématiques
    • +++ : opérateur d'addition
    • --- : opérateur de soustraction
    • jtkif : opérateur d'incrémentation
    • tnul : opérateur de décrementation
  • Opérateurs logiques (polymorphes)
    • :| : opérateur égal
    • :] : opérateur différent
    • :( : opérateur supérieur
    • :) : opérateur inférieur
    • =( : opérateur supérieur ou égal
    • =) : opérateur inférieur ou égal
  • Opérateur sur les chaînes (polymorphe)
    • ^^ : opérateur de concaténation de chaîne de caractères

Quelques exemples :

mdr laura c 2 lol
mdr steven c laura +++ 3 lol
jtkif steven lol

A la fin de ces 3 instructions, la variable laura vaudra 2 et steven 6

mdr minion c ! moa :P! lol
mdr unlapin c minion ^^ ! prout ! lol

A la fin des 2 instructions, la variable unlapin vaudra « moa :P prout  »

Entrées/Sorties

Non, ceci est une chienne de caractère. Rien à voir.

MDR gére nativement les entrées/sorties sur les flux standards. L'écriture sur la sortie s'effectue via le mot-clé tavu suivi d'une chaîne de caractères. Dans l'exemple suivant, le code

tavu ! gé 1 gro zizi! lol

affichera «  gé 1 gro zizi » sur l'écran.

La directive lachtcomz permet, quant à elle, de récupérer les données présentes sur l'entrée standard (le clavier). L'appel est bloquant et retourne une chaîne de caractères dès qu'il rencontre le caractère EOF. Dans l'exemple suivant, on récupére les données sur l'entrée standard que l'on stocke dans une variable trobi1, puis on affiche un message auquel sera concaténé la variable sus-nommée.

mdr trobi1 c lachtcomz lol
tavu !komen mon blog il é ! ^^ trobi1 lol

Si on saisit au clavier « vraiment pathétique », le programme affichera « komen mon blog il é vraiment pathétique ».

Casque chantier.gifAttention !
Cet article est en construction !
Port du casque obligatoire


Structures de contrôle

Fonctions et procédures

Mécanismes de synchronisation et verrouillage de ressources critiques dans des processus multi-threadés

Communauté et support

Notes

  1. MDR Development Kikoopack