octobre
2024
Une notion importante de programmation, du moins si vous vous intéressez à comment ça marche, est celle de référence. Pour l’ordinateur une variable a deux attributs: sa valeur (on peut y attacher une taille, un type…) et son adresse en mémoire. Pourquoi l’adresse en mémoire? Eh bien, c’est simplement l’information qu’il lui faut pour accéder à la variable quand elle est en mémoire vive. Du coup, un programme tend à manipuler deux types de données. […]
juillet
2014
Les constructeurs sont, en dodo, là où le langage devient impératif. Le constructeur fait habituellement partie du baggage associé à la programmation orientée objet; cependant, ce n’est pas un composant essentiel de celle-ci. Il est tout à fait envisageable de faire de la programmation objet en se contentant de fonctions « fabrique » qui produisent des instances de classe en fonction de paramètres définis. Ce qui distingue un constructeur de ces dernières, c’est que le constructeur agit […]
juin
2013
En langage C, la déclaration d’un enum énumère une liste d’identifiants associés avec cet enum (d’où son nom) et affecte une valeur numérique unique pour chacun d’entre eux. En Java, l’idée est la même mais les identifiants appartiennent au namespace de l’Enum et les valeurs peuvent être non-numériques. Exemple d’enum en C: (C) enum style { plan, relief, creux, cadre }; Le type enum de dodo est différent. En fait, il correspond au type des […]
avril
2013
Une particularité intéressante de dodo est qu’il s’agit d’un langage prototypes, à l’instar de Javascript, qui est aussi fortement typé. Comment résoudre cet antagonisme? Nous y avons déjà touché dans l’article Le Modèle Objet de Dodo. En dodo, l’appartenance à un type implique que la variable dérive d’un prototype donné, et l’interface du type permet d’accéder ou manipuler la variable sur cette base. Dans cet épisode nous allons nous intéresser particulièrement aux prototypes. La façon […]
février
2013
Pour le troisième volet de cet article je vais discuter la fonction auxiliaire à laquelle je faisais allusion dans la première partie. Nous allons premièrement voir quel est le problème qu’il s’agit de résoudre.
juillet
2012
Le langage dodo et le langage C ne sont pas trop éloignés au niveau de la syntaxe, mais leur fonctionnement est assez différent. Là où C est un langage procédural, dodo est un langage à prototypes utilisant le passage de continuations (CPS). Le défi pour moi, l’architecte du langage, est de faire correspondre les concepts de dodo à une implémentation pratique offrant une performance acceptable. Je me suis donc tourné vers C avec l’idée d’écrire […]
juillet
2012
Le langage C est réputé proche de la machine. Comme le langage dodo utilise des techniques très bas niveau, on pourrait penser que C serait une plate-forme idéale pour une implémentation efficace. La réalité n’est pas si simple.
juillet
2012
Représentation Une chaîne de caractères en dodo peut simplement s’écrire entre double guillemets. « Bonjour » Par défaut, le programme utilise le même encodage de caractères que le fichier source. Le compilateur détermine l’encodage du fichier à sa lecture. Cependant la détection d’encodage de fichier n’est pas une science exacte et dépend souvent de la configuration du système. Le compilateur doit permettre de fournir le nom d’un encodage de caractères au moment de la compilation. Pour choisir […]
avril
2012
Il m’est apparu que dodo a parfois besoin d’interpréter une valeur de plusieurs façons. Par exemple, une valeur numérique doit pouvoir être interprétée comme une série de bits pour y appliquer des opérations binaires. Cela peut se faire à l’aide de fonctions de conversion. struct Int32bits is Countable, is Indexed, is Iterable { toInt => Integ32 } def Integ32 = new Integer(size: 32) { toBits => Int32bits } Integ32 n = 345 .n = n.toBits […]
mars
2012
Le modèle de programmation parallèle basé sur les tâches et la mémoire partagée est le plus répandu aujourd’hui, on le retrouve en particulier dans Java, C# et C avec OpenMP.