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 ![]()
Vous devez être identifié pour poster un commentaire.
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.
Vous devez être identifié pour poster un commentaire.
Une valeur de vérité (booléen) peut prendre deux valeurs en logique, soit vrai soit faux. En fait la logique s'étend à des ensembles de valeurs plus grand mais on ne s'intéresse qu'à ces deux-là ici.
Dès lors, on peut considérer une valeur de vérité comme un ensemble de taille maximale un.
Vous devez être identifié pour poster un commentaire.
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.
Vous devez être identifié pour poster un commentaire.
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.
Vous devez être identifié pour poster un commentaire.
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?
Vous devez être identifié pour poster un commentaire.
Pour être reconnu aujourd’hui, un nouveau langage se doit d’apporter des nouveautés dans le domaine de la programmation. Certains se distinguent en visant la facilité d’utilisation, ou en étant spécialisé pour une application précise. Mais ce à quoi tout le monde s’intéresse, c’est le parallélisme.
Vous devez être identifié pour poster un commentaire.
Je me demandais à quoi pourrait ressembler un système de macro avancé pour dodo.
Il se trouve que dodo a déjà deux mécanismes qui pourraient être réutilisés: les intercepteurs d'appel (wrap) et les templates. Voici un exemple de ce que l'on pourrait faire avec s'ils étaient utilisés pour les macros.
Vous devez être identifié pour poster un commentaire.
Le modèle objet de dodo repose sur le prototype, comme nous avons vu dans la première partie.
Nous allons maintenant voir comment dodo interprète la notion de classe, un classique de programmation orientée objet, en terme de prototypes.
Vous devez être identifié pour poster un commentaire.
Dodo est un langage à prototypes, à l'instar de Self ou de Javascript. Un objet est défini sur la base d'un autre objet. Il permet aussi de définir des classes, qui décrivent des objets tous issus du même prototype.
Cet arrangement permet à dodo de proposer un modèle objet très complet, simple et cohérent.
Vous devez être identifié pour poster un commentaire.
| 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 |
Copyright © 2000-2012 - www.developpez.com