Skip to topic | Skip to bottom
Home
Projects
Projects.IsoLoor1.16 - 08 Nov 2006 - 10:52 - GeoffroyFouquiertopic end

Start of topic | Skip to actions
Cette page est à destination des étudiants du module « Programmation Orientée Objet » de la brique « Ingénierie des Systèmes Objets » de l'ENST encadrée par Akim Demaille et Geoffroy Fouquier. On peut joindre ces étudiants par brique-iso-t2 at listes.enst.fr.

Les Sujets

L'environnement de travail

Nous utilisons le compilateur SmartEiffel, autrefois SmallEiffel. Toutes les informations le concernant sont diponibles sur le site de SmartEiffel. En particulier, il y a la documentation des outils, et celle de la bibliothèque standard.

Accès au SmartEiffel de mon compte

Ce compilateur est installé sur mon compte. Pour vous en servir, assurez-vous que votre PATH contienne le répertoire ~demaille/SmartEiffel/bin/. Le plus simple consiste à exécuter la commande suivante pour les utilisateurs de bash, zsh ou sh:

SE=~demaille/SmartEiffel
export PATH=$SE/bin:$PATH
export MANPATH=$SE/man:$MANPATH
cp ~demaille/.serc ~

quant à ceux qui en dépit du bon sens utiliseraient encore csh ou tcsh, tapez:

set SE /infres/ir20/irpost/demaille/SmartEiffel
setenv PATH $SE/bin:$PATH
setenv MANPATH $SE/man:$MANPATH
cp ~demaille/.serc ~

N'oubliez pas de lancer hash -d ou rehash selon votre shell. Tant que la commande suivante échoue, c'est qu'il y a un problème:

$ compile --version
Version of command "compile" is:
SmartEiffel The GNU Eiffel Compiler, Eiffel tools and libraries
Release 2.0 (Monday september 27th 2004) [Hercule]
Copyright (C), 1994-2002 - INRIA - LORIA - ESIAL UHP Nancy 1 - FRANCE
Copyright (C), 2003-2004 - INRIA - LORIA - IUT Charlemagne Nancy 2 - FRANCE
D.COLNET, P.RIBET, C.ADRIAN, V.CROIZIER F.MERIZEN - SmartEiffel@loria.fr
http://SmartEiffel.loria.fr

Les outils disponibles sont alors :

$ ls $SE/bin
ace_check*        compile*          pretty*           short*
class_check*      compile_to_c*     print_jvm_class*
clean*            finder*           READ_ME

Prise en main du compilateur SmartEiffel

Dans un premier temps vous êtes encouragés à essayer de compiler le programme suivant :

$ cp $SE/tutorial/hello_world.e .
$ cat hello_world.e
class HELLO_WORLD
--
-- The "Hi World program" for SmartEiffel :-)
--
-- To compile type command : compile hello_world
-- Run with command : a.out
--
-- To compile an optimized version type : compile hello_world -boost -O2
--
-- To produce Java bytecode : compile_to_jvm -o hello hello_world
-- To run the Java bytecode : java hello
--
create make

feature

   make is
      do
         io.put_string("Hello World.%N")
      end

end -- HELLO_WORLD
$ compile hello_world -o hello_world
$ ./hello_world
Hello World.

Enfin, étudiez et comprenez comment fonctionne l'exemple des tours de Hanoi :

$ cp -r $SE/tutorial/hanoi .
$ cd hanoi

ATTENTION Emacs & XEmacs

Quelque part dans les fichiers de configuration d'Emacs à infres, Emacs pense que les fichiers terminant en .e sont à chiffrer (i.e., crypter). Bien su^r vous n'avez aucune envie de chiffrer votre code, puisque vous voulez le donner à lire à (i) vous-me^me, (ii) votre compilateur, (iii) vos correcteurs... S'il vous demande s'il faut chiffrer, dites non.

Pour de'sactiver cette "fonctionnalite'", faites :

    M-: (set 'write-file-hooks nil) <RET>

ou` M-: signifie taper simultane'ment la touche Meta (le losange) et :, ou bien d'abord sur puis :.

Si par défaut vous ne disposez pas du mode Eiffel, alors, une fois que vous avez lancé X?Emacs, tapez

    M-x load-file <RET> ~demaille/SmartEiffel/eiffel.el

Autres outils

Vous allez rapidement avoir besoin de documentation sur les classes standard d'Eiffel ; pour ceci, je vous conseille la documentation bibliothèque standard de SmallEiffel.

Vous allez également vouloir de la documentation sur votre propre application. pour cela, utilisez short. Par exemple, dans votre répertoire de hanoi, exécutez short -plain string ou encore short -plain -short string, et enfin short -plain hanoi.

Notez que la qualité de la documentation donnée par short dépend de votre écriture : les commentaires doivent être convenablement placés etc.

Documentation

Les Rendus

Modalités de rendu

Le sujet se fait par monome. Le travail par groupe est encouragé, mais chaque membre du groupe se doit de démontrer sa compréhension du projet et donc du langage. En particulier, le code identique pour deux personnes n'est pas accepté ; néanmoins du code similaire sera toléré si la ressemblance est déclarée plutôt que découverte. Enfin, aucune similarité dans les rapports ne sera tolérée.

Le rendu se fera sous la forme d'une archive envoyée à <Akim.Demaille@lrde.epita.fr> et à <Geoffroy.Fouquier@lrde.epita.fr>. Suivre obligatoirement les ModalitesDeRendu (par courriel).

La date de rendu est fixée au jeudi 16 février midi. Geoffroy Fouquier enverra alors la liste des projets qui n'ont pas été reçus. Ces derniers auront jusqu'au vendredi 17 février midi dernier délai. Ensuite des pénalités sévères seront appliquées (voire juste pas de correction.)

Vous devez fournir comme documentation :

  • Le descriptif du processus de compilation et d'éxecution du programme.
  • La description de la hiérarchie.
  • Un diagramme UML présentant la hiérarchie des classes utilisées.
  • Un ensemble de tests contenant :
    • 5 tests fonctionnels.
    • 5 tests non fonctionnels.

Les Rendus Reçus

Pour l'instant, les projets reçus sont :

vendredi 17 février 2006, 15:38:08 (UTC+0100)
LOOAST-talatini.tar.gz
LOO_AST-bollengi.tar.gz
LOO_Benoit_RAPEBACH_Final.tar.bz2.tar.bz2
LOO_ROCHE.tar.gz
LooAst-FXHouardDist.tar.gz
LooAst-alouani.tar.gz
LooAst-gelliber.tar.gz
loo-ast-bessaies.tar.gz
loo-ast-oliveira.tar.gz
loo-ast-schittly.tar.gz
loo_ast-hnia.tar.gz
loo_ast-sunderme.tar.gz
loo_ast_sterlin.tar.gz
looast-elazreq.tar.gz
looast-garrigues.tar.gz
looast-hafner.tar.gz
looast-hermes.tar.gz
looast-hess.tar.gz
looast-richea.tar.gz
looast-sarrabez.tar.gz
looast-xzhao.tar.gz
tp-looast-zoukpo.tar.gz

Les Notes

Voir l'un des documents suivants :

-- Main.akim - 20 Jan 2006
to top


You are here: Projects > IsoLoo

to top

Copyright © 1999-2010 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback