Greg's Devblog Par un développeur, pour les développeurs

11nov/100

javaz : les sources !

J'ai décidé de me bouger le cul et de livrer les sources de javaz (compilateur Java pour Zam, le bytecode Caml). Il n'y a à l'heure actuelle pas de licence, pas de warning, pas d'instructions, rien :)

Vous pouvez compiler (nécessite d'avoir de quoi compiler du caml sur votre machine...) et tester, et un certain nombre de jeux de test sont déjà inclus et testable (avec "make tree", "make peano", etc...).

Je ferai probablement un petit billet sur les entrailles de la bête le jour où j'aurai le temps et si ça intéresse quelqu'un. Mais pour l'instant, c'est livré "as is".

Have fun !

Taggé comme: , , Aucun commentaire
4nov/100

javaz : coming soon

Je fais un article rapide, la suite arrivera d'ici quelques jours ^^ Juste pour dire qu'hier avec Benoit (mon binome sur ce projet) on a rendu le premier jet de javaz, notre projet de compilateur Java pour zam (bytecode caml).

Le projet n'est pas encore très abouti, mais permet déjà de tester quelques trucs. On a de l'héritage, des appels de méthodes, des champs, après il manque des conneries genre les méthodes statiques, les génériques, les tableaux, et autres bétises.

Pour les tests, on a mis au point 2 exemples, un qui cherche des nombres premiers, et un exemple où on représente les entiers par des objets foireux : un objet de type Zero qui représente 0 (WOW !), et un objet de type Succ qui possède un objet (Zero ou Succ) et qui a pour valeur 1 + cet objet. Donc en gros pour représenter les calculs, c'est le bordel, et pour faire de simples additions ça coute super cher, mais au moins pour faire du bench sur les appels de méthodes et les accès aux champs, c'est marrant ^^

Je posterai tout ça avec quelques instructions d'utilisation demain. Mais pour résumer, en gros, niveau performances on tourne entre 3.5 et 10 fois plus lent que la JVM, ce qui est correct compte tenu du fait que le bytecode caml est exécuté dans une VM sans JIT, contrairement à la JVM :)

Projet intéressant, la suite demain !

Taggé comme: , , , Aucun commentaire
24oct/103

OcaIDE : eclipse se met au Caml

Je ne me voyais pas trop utiliser emacs pour le projet Caml de la fac, du coup mon binôme m'a proposé de tester OcaIDE, un plugin eclipse pour OCaml.

Ca fait maintenant quelques jours que je l'utilise, et je dirai que dans l'ensemble c'est plutôt pas mal. La compilation de notre projet ne marche pas, pour d'obscures raisons, mais je le fais dans la console et ça passe bien. Les fonctionnalités que j'utilise pour l'instant sont essentiellement :

  • L'auto-indentation, avec F3, qui rale quand on tape des conneries, donc ça aide à les voir ^^
  • L'analyse syntaxique, avec les endroits problématiques soulignés en rouge
  • Le top-level caml, où on peut tester quelques lignes vite fait, bien pratique
  • L'auto-complétion avec ctrl+espace, qui marche quand elle veut mais qui est plutôt pratique dans l'ensemble.

Au final, c'est une vraie solution viable comme alternative au couple emacs/tuareg, et ça pourrait séduire des neophytes (en matière de Caml). Il reste un défaut majeur, à savoir que c'est Eclipse, donc lourd et pas forcément super compacte au niveau interface, mais c'est toujours mieux que le bloc-note ou gedit !

14sept/100

De l’intérêt des langages fonctionnels

Je ne sais plus trop comment je suis tombé sur l'article de defmacro.org sur la programmation fonctionnelle, mais en tout cas je le trouve très intéressant pour toute personne n'étant pas, a priori, intéressé par ce type de programmation. Ca présente de façon claire et compréhensible pourquoi ce paradigme existe, et pourquoi il gagnerait à être utilisé.

J'ai rajouté le ce site dans ma liste de flux RSS, car il a l'air de publier des articles très intéressants :)  Donc si vous voulez un peu de lecture, rendez-vous sur http://www.defmacro.org/