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
Table de hachage La table de hachage est une structure de données qui permet d’implémenter une table associative (que l’on appelle aussi un index ou un dictionnaire). Son principe est de répartir les données de façon homogène à l’aide d’une fonction de hachage appliquée aux clés de la table. La plupart des langages de programmation offrent une table de hachage comme structure de données standard, avec peut-être l’exception notable du langage C (noter que le […]
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.
juin
2011
Pour introduire le système d’exceptions de dodo (je préfère parler d’événements) je propose de s’atteler à une tâche simple, la traduction d’une méthode Java gérant les exceptions dans le langage dodo. Sans plus d’ambages, voici la méthode en question: private void openStore() { try { store = RecordStore.openRecordStore(« CALCULATOR », true); for (int recordId = 1, last = store.getNextRecordID(); recordId < last; recordId++) { byte[] record = null; try { record = store.getRecord(recordId); } catch (InvalidRecordIDException x) […]
novembre
2010
Mr Haskell Curry est un logicien qui a donné son nom à une technique utilisée en programmation fonctionnelle, le currying. Celle-ci a pour origine les travaux de Gottlob Frege et Moses Schönfinkel, ce qui a poussé Christopher Strachey à suggérer le nom de schönfikelisation en tant qu’alternative. Ne nous attardons pas plus longtemps sur les détails triviaux. Voyons ce que le terme signifie en informatique.
septembre
2010
Le dernier ticket sur la gestion d’exception (ou d’événement), malgré sa longueur, ne décrit pas un aspect délicat de celui-ci: la gestion d’exception dans les instructions de finalisation. En effet, si les instructions d’un bloc try ont terminé sur le retour de la fonction (return) ou sur une exception non capturée, il reste toujours des instructions de finalisation a exécuter. D’autres langages comme Java ont des règles peu satisfaisantes en ce qui concerne les exceptions […]
septembre
2010
La construction if (condition) … else … se retrouve dans pratiquement tous les langages de programmation. Suivant la valeur de vérité de la condition (vrai ou faux), le premier résultat est retourné ou bien le second. Que se passe-t-il dans un exemple simple?
août
2010
Le projet dodo a commencé il y a bien longtemps, et l’idée de mettre ses concepts en pratique me trottait dans la tête depuis un bon moment. Malheureusement je ne voyais pas clairement comment m’y prendre. Eh bien grâce à une suggestion que l’on m’a faite, il semble que j’aie finalement la solution.
août
2009
Dans une fonction qui se veut libre d’effets de bord, certaines operations qui semblent anodines peuvent compromettre la propriété désirée de la fonction. Par exemple, le chargement d’une classe en mémoire.