Utilisateur:Monsieur Brouillon/MDR
MDR est un langage de programmation impérative dérivant du LOLCODE, son prédecesseur.
Historique
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
Type | Equivalent Java | Exemple en MDR | Remarque(s) |
---|---|---|---|
entier | int | mdr monQI c 34 lol | Le langage étant adapté aux jeunes, une variable de type entier ne peut excéder 364 |
réel | float ou double | Déprécié depuis 2004 car non utilisé | |
booléen | boolean | mdr lémath c relou lol | tigen pour vrai et relou pour faux |
chaîne de caractères | String | mdr TH c !grav dla bal! lol | ! délimite les chaînes de caractère. La chaîne vide se symbolise par !! |
indéfini | void | mdr desancycopédi c o0? lol | La valeur nulle est o0? |
Opérateurs
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
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 ».
Attention ! 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
- ↑ MDR Development Kikoopack