Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

Dépêche éditée par

Développeur : Lisaac 0.84 est sorti

Posté par Ontologia (page perso, ). Modéré le 29 novembre 2005.
Technologie
Une nouvelle version du compilateur Lisaac est disponible.

Lisaac est le premier langage objet à prototype compilé. Digne héritier de Self et Eiffel (il a été conçu au sein du laboratoire où a été écrit GNU/SmartEiffel, sous la férule de Dominique Colnet), il améliore grandement les techniques utilisées dans SmartEiffel afin de produire un code aussi rapide que du C. Lisaac a été conçu dans le cadre du projet "IsaacOS" afin de disposer d'un langage objet de haut niveau, suffisamment performant pour écrire un système d'exploitation.

Pour cette version, la bibliothèque standard du compilateur passe en LGPL et l'ensemble du code fourni en exemple passe en GPL. En effet, Lisaac est fourni avec une bibliothèque complète, incluant depuis cette version des fonctionnalités permettant d'écrire des interfaces utilisateurs. Un gros effort a été fourni pour rendre le code totalement portable sous GNU/Linux, DOS et Windows (Lisaac produit du C ANSI).

Notez que le versionning est à rapporter aux spécifications originales du langages : le compilateur est stable et fonctionnel.

> Lire la dépêche (88 commentaires, moyenne: 3,3).  

L'objet à prototype diffère de l'objet à classe : Une classe n'est que la représentation abstraite d'une réalité alors qu'un prototype est vivant. Une classe s'instancie, un prototype se clone. L'héritage s'effectuant au niveau de l'objet, ceux-ci peuvent dynamiquement changer de parents à l'exécution ce qui accroît fortement la flexibilité.

Afin de produire un code le plus performant possible, Le compilateur Lisaac utilise un technique dite d'analyse de flot. Cette technique analyse le contenu de tout le code soumis au compilateur qui va "prévoir" toutes les branches possible du code, en particulier quel sont les objets réellement utilisés. Il ne produit donc que le code nécessaire à l'exécution du programme. C'est une avancée par rapport à SmartEiffel qui se borne à une analyse syntaxique du code.

Interface utilisateur
La bibliothèque permettant d'écrire l'interface utilisateur a été conçue pour être la plus simple possible. On peut écrire un petit éditeur texte en quelques lignes.
On peut créer par exemple une zone texte en une ligne :
GUI_IN_TEXT.create_in INTERFACE at 5,160 width 250 label "object GUI_IN_TEXT : " action self;

Elle est doté d'un système de message permettant de récupérer simplement les évènements souris, clavier, etc. Ici, c'est la méthode receive de l'objet courant qui sera appelée.

Licence
L'Inria ne veut pas publier le code source du compilateur Lisaac pour le moment étant donné qu'il s'agit d'une technologie vraiment novatrice et qu'ils veulent la protéger, il ne nous est donc pas possible de rendre Lisaac disponible en GPL.
J'ai demandé à RMS de me donner son point de vue et il m'a expliqué que même si les brevets étaient "mal", la moins mauvaise solution était de déposer un brevet sur la technologie puis de libérer le code source.

La licence actuelle permet au moins à quiconque de l'utiliser librement à condition de ne pas utiliser le compilateur pour produire un code à des fins commerciales.

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Javascript

Posté par CS () le 29/11/2005 à 11:39. (lien). Évalué à 5.

Un autre exemple de langage objet à base de prototype est javascript.
Bien sur, il n'est pas compilé etc., mais pour tâter de l'objet à base de prototype, c'est un bon début.

le... "versionning" ?

Posté par fantome asthmatique () le 29/11/2005 à 12:08. (lien). Évalué à 2.

je suppose que ça doit avoir un rapport avec le numéro de version,
est-ce que ça regroupe d'autres concepts ?

Noyau / OS autour de Lisaac...

Posté par Fanf () le 29/11/2005 à 13:07. (lien). Évalué à 7.

J'ai récemment découvert ce langage et le projet IsaacOS lorsqu'on avait parlé de Singularity [1]. A ce moment, il avait été dit que le compilateur n'était (et a priori ne serait) pas libre, en rapport avec la politique de publication de l'INRIA. C'est donc avec beaucoup de joie que j'accueille cette nouvelle.
Le monde des noyau/OS aurait besoin d'un bon coup de renouveau, et je prefererais que ce renouveau soit libre.

C'est extrèmement interressant de disposer du langage et du compilateur. Sans C, Linux n'aurait pas pu être créé... Tout ce que je peux souhaiter, c'est que Lisaac crée le même genre d'engouement ;) Bon, d'accord, il manque l'équivalent de POSIX pour IsaacOS... Mais c'est déjà un bon début ;)
Et puis, on peux toujours espérer, puisqu'il semble que des personnes proches des chercheurs liés au projet fréquentent assidûment LinuxFR.

[1] : https://linuxfr.org/~Fanf/20055.html

licence ?

Posté par left () le 29/11/2005 à 13:07. (lien). Évalué à 10.

Je vais me faire l'avocat du diable, mais pourquoi publier ici la sortie d'un logiciel non libre et à code sous fermé ? Un journal n'aurait-il pas suffit ? Ca sort de l'INRIA et ça suffit ? Ca serait sortit de chez Microsoft que tout le monde aurait hurlé ...

Quitte à poster un commentaire, j'en profite quand même pour poser des questions sur ce langage.

1. Si ce langage est franchement mieux que Eiffel (langage que j'apprécie beaucoup) , pourquoi D. Colnet continue-t-il le développement du compilateur SmartEiffel? Et ce d'autant que la lecture de la ML semble révéler quelques tensions entre les devs (certains sont à l'INRIA et les autres sont bénévoles) et les utilisateurs, qui ne semblent pas se bousculer au portillon. Quel intêret reste-il à Eiffel si Lisaac permet de faire tout ce que permet de faire Eiffel, et plus encore ?

2. C'est une avancée par rapport à SmartEiffel qui se borne à une analyse syntaxique du code.
T'es sûr de toi . C'est en contradiction avec ce qui est dit sur http://smarteiffel.loria.fr/papers/papers.html
De toute façon, un compilateur ne peut pas se borner à de l'analyse syntaxique, il faut au moins un peu d'analyse sémantique . J'ai raté qqchose ?

3. <<il a été conçu au sein du laboratoire où a été écrit GNU/SmartEiffel>>
[Note: je ne mets pas en doute *ton* interêt pour l'open source.]
Il y a bien SmartEiffel, qui est à la fois un langage et un compilateur [1], et qui est présenté comme "the GNU Eiffel Compiler", mais GNU/SmartEiffel n'existe pas. Mais est-ce une simple confusion ? Je commence en effet à me poser des questions sur l'utilisation de l'Open Source dans ce labo :
- certains fichiers livrés avec le compilateur SmartEiffel ne contiennent même pas le nom de leur auteur, mais le copyright du 'noyau dur des developpeurs'.
- on nous parle de RMS pour un projet qui est pour le moment tout ce qu'il y a de plus fermé. J'aimerais comprendre ...


[1] Eiffel est un fabuleux langage qui n'a malheureusement jamais été normalisé (une version qui nous vient de Mars vient de l'être à l'ECMA, mais personne ne l'implémente), et chaque compilateur utilise son propre jargon du langage. Et depuis un an, c'est de pire en pire.
cf http://en.wikipedia.org/wiki/Eiffel_programming_language#Spe(...)

Benchmarks

Posté par Sytoka Modon (page perso, ) le 29/11/2005 à 13:08. (lien). Évalué à 4.

Sur la page des benchmarks, la nouvelle version 0.84 n'apparait pas. Je suppose que globalement, tout va mieux avec elle ?

http://isaacos.loria.fr/li_speed.html

Il est vrai qu'entre la version 0.82 et la version 0.83, il ne semble pas y avoir eu beaucoup de changement...

Pourquoi ne pas mettre la date de sortie des versions ? Cela donnerait sur cette page une idée de la réactivité et de la vitalité du projet Lisaac.

Très bien.

Posté par Miguel Moquillon (page perso, ) le 29/11/2005 à 13:24. (lien). Évalué à 2.

Cela fait un certain temps que j'observe avec attention l'évolution des langages objets à prototype: ion, slate et lisaac par exemple.
J'espère que je vais pouvoir compiler cette version de lisaac avec gcc 4.x sans problèmes.
Sinon, une anecdote sur les slots de BOOLEAN. Je trouve le slot
BOOLEAN.if BLOCK mal spécifié. En effet, écrire vrai si faire_machin ne veut AMHA rien dire.
J'aurais supprimé ce slot et aurais gardé:
BOOLEAN.if_true block:BLOCK
BOOLEAN.if_false block:BLOCK
BOOEAN.if_true block_true: BLOCK else block_false: BLOCK

Puis j'aurais rajouté dans BLOCK:
BLOCK.if test:BOOLEAN

Sinon, je trouve que vous faites du bon boulot et je vais faire quelques tests avec cette version. Si elle est ok, je pense que je vais progressivement l'utiliser de plus en plus pour mes propres programmes.

Le marketing de l'INRIA

Posté par salvaire () le 29/11/2005 à 15:26. (lien). Évalué à 7.

Je trouve que le langage sur la page du projet est surprenant.

Ils comparent le nombre de ligne de code de Linux avec leur OS (30 000 lignes, contre 130 000). Je ne pense pas que c'est relevant. Surtout que dans la liste des fonctionnalités de l'OS est:

Graphic user interface
Vectorial GDI
True type font support
Bitmap and Postcript viewer
MPEG-1 and MPEG-2 viewer
Games (tetris, 4online)

Quel est le rapport avec un système d'exploitation comme Linux? On dirait plutôt une offre marketing pour constructeur de téléphone mobile. D'ailleurs si on regarde les images sur la page ... Tous ça pour dire que les objectifs sont pas très claire, c'est un OS tout court ou un OS pour pda?

Mouai, je suis pas fan de la syntaxe

Posté par reno () le 29/11/2005 à 20:31. (lien). Évalué à 3.

Je pense que la syntaxe d'un langage a une grande importance: si elle n'est pas appréciée par les développeurs, il y a peu de chance que le langage soit un succès quelquesoit ses autres qualités.

Et je généralise peut-être mais j'ai l'impression que les chercheurs ont tendance à s'intérresser plus au modele mathématique sous-jacent, aux algorithmes des compilo qu'a des trucs bassement concret comme la syntaxe, ce qui n'aide pas l'adoption du langage..

Bon ce n'est pas le cas de tous les language de recherche: Scala est un bon contre-exemple, avec une syntaxe très bien pensée, à mon avis bien sûr, des gouts et des couleurs, tout ça..

Isaac ?

Posté par Philippe Worontzoff (page perso, ) le 30/11/2005 à 06:40. (lien). Évalué à 1.

Mais au fait, pourquoi avoir choisi le nom du fils d'Abraham ?

Revenir en haut de page