Syndication : Atom 1.0  RSS 2.0
Blogs des développeurs   »   Le nid de dodo

Catégories: Langage, Dodo

21/04/2012

Permalink 01:45:53, Catégories: Langage, Théorie, Flânerie, 622 mots   French (FR) , bredelet

Type alias

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, Indexed, Iterable
{
   =>Integ32 toInt
}

def Integ32 = new Integer(size: 32)
{
   =>Int32bits toBits
}

Integ32 n = 345
.n = n.toBits << 1   # assigne à n en convertissant avec toInt

Cependant, on peut vouloir interpréter la valeur comme une série d'octets au lieu de bits. Ou bien vouloir encore d'autres interprétations... La définition du type ne peut pas prévoir toutes les permutations.

De plus, la fonction de conversion peut être difficile à écrire en dodo.

Le langage C offre deux alternatives bien connues pour résoudre cela: la coercion de type et l'union. Ce sont deux mécanismes qui sont responsables pour grande partie du caractère dangereux de la programmation C, avec l'utilisation des pointeurs.

Il faut noter que Java a aussi la coercion de type (avec des limites) mais pas les pointeurs. Comme Java est généralement considéré sûr, on pourrait juste le copier.

Mais je n'aime pas me contenter de l'existant :)

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

16/10/2010

Permalink 17:01:18, Catégories: Récapitulatif OpenSource, Dodo, Flânerie, 78 mots   French (FR) , bredelet

[OpenSource] Venez jouer!

Le jour est venu, dodo a maintenant un interpréteur qui permet d'écrire de petits programmes et les exécuter!

Certes il est limité à un petit nombre d'éléments du langage mais on peut déjà faire des choses intéressantes. Assurez-vous de lire Readme.txt et les exemples. Page du projet:
http://sourceforge.net/projects/dodo

Autres liens:

http://blog.developpez.com/dodo/p7976/langage/dodo/langage-minimal-pour-dodo
http://blog.developpez.com/dodo/p9236/technique/vers-une-premiere-implementation-de-dodo

Vous devez être identifié pour poster un commentaire.

01/10/2010

Permalink 23:45:19, Catégories: Technique, Théorie, Dodo, Flânerie, 297 mots   French (FR) , bredelet

Monsieur Curry

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.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

24/09/2010

Permalink 13:46:06, Catégories: Technique, Dodo, 652 mots   French (FR) , bredelet

Commentaire sur la gestion d'exception

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 levées à ce moment-là.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

23/09/2010

Permalink 03:09:14, Catégories: Intro, Technique, Dodo, 1615 mots   French (FR) , bredelet

La gestion d'exception de dodo en action

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) {
                // record was deleted
            }
            if (record == null) {
                continue;
            }
            Statement stmt = new Statement(recordId, record);
            try {
                Compiler compiler = new Compiler(stmt.text);
                Compiler.Expression expr = compiler.compile();
                if (expr instanceof Compiler.Declaration) {
                    ((Compiler.Declaration)expr).declare(bindings);
                }
                stmt.state = Statement.COMPILED;
            } catch (CompileError x) {
                stmt.state = Statement.ERROR;
            }

            statements.addElement(stmt);
        }
    } catch(Exception x) {
    }
}

» Lire la suite!

1 2 3 4 5 Page suivante »

Vous devez être identifié pour poster un commentaire.

10/09/2010

Permalink 14:54:43, Catégories: Langage, Technique, Dodo, 283 mots   French (FR) , bredelet

La transformation du if

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?

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

26/08/2010

Permalink 01:43:23, Catégories: Récapitulatif OpenSource, Langage, Intro, Technique, Dodo, 706 mots   French (FR) , bredelet

[OpenSource] Vers une première implémentation de dodo: la boucle de continuations

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.

» Lire la suite!

1 2 Page suivante »

Vous devez être identifié pour poster un commentaire.

24/11/2009

Permalink 12:24:47, Catégories: Langage, Intro, Théorie, Dodo, 1390 mots   French (FR) , bredelet

La programmation parallèle en dodo - Partie 4 - Les transactions

Le concept de transaction est bien connu des utilisateurs de base de données, où il sert à grouper des opérations pour permettre l'accès concurrent et consistant aux données de la base.

La programmation parallèle peut faire appel à la notion de transaction pour manipuler les variables partagées. Le principal intérêt de ce modèle est la simplicité d'utilisation et une efficacité meilleure que d'autres modèles comparables.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

26/10/2009

Permalink 11:07:53, Catégories: Langage, Intro, Théorie, Dodo, 615 mots   French (FR) , bredelet

La programmation parallèle en dodo - Partie 3 - Les tâches et les variables partagées

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.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

24/08/2009

Permalink 16:57:28, Catégories: Langage, Théorie, Dodo, 367 mots   French (FR) , bredelet

Langage minimal pour dodo

Si je voulais choisir une liste d'éléments du langage, de façon à pouvoir définir le reste du langage en ses termes, que devrais-je inclure dedans? Que serait un langage minimal pour dodo?

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

11/08/2009

Permalink 08:56:54, Catégories: Technique, Dodo, 294 mots   French (FR) , bredelet

Timing du chargement des classes

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.

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

24/07/2009

Permalink 15:45:47, Catégories: Technique, Dodo, Flânerie, 600 mots   French (FR) , bredelet

À propos du passage de messages

Dans le dernier ticket, j'ai parlé du modèle client-serveur avec passage de message pour la programmation parallèle en dodo.

Cela semble une bonne idée en théorie, mais comment cela marche en pratique?

» Lire la suite!

Vous devez être identifié pour poster un commentaire.

« Page Précédente 1 2 Page suivante »

Liste des blogs

Le nid de dodo

Catégories


Rechercher

<  Avril 2012  >
Lun Mar Mer Jeu Ven Sam Dim
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web