LeeWee Simple Syntaxe. par Lhoumaud David



Documents pareils
Internationalisation d'une application Python

ISBN

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Traitement de texte : Quelques rappels de quelques notions de base

Églantine et les Ouinedoziens

Dans cette banque, cette expérience peut varier selon les personnes. La relation de la même demande par une autre enquêtrice vaut le déplacement

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

Systèmes d'exploitation virtuels

Questions et réponses relatives aux extraits au format A4 dans PC banking

Création d'un questionnaire (sondage)

Télécom Nancy Année

Table des matières. 3kernels.free.fr QR-Codes 2 / 6

EXTRACTION ET RÉINTÉGRATION DE COMPTA COALA DE LA PME VERS LE CABINET

Qu'est-ce qu'un moteur de recherche. Moteur de recherche sur Internet

Lisez ATTENTIVEMENT ce qui suit, votre avenir financier en dépend grandement...

Récupération de fichiers effacés avec Recuva 1/ 5

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Comment créer un site web Proxy gratuitement!

Bases pour sécuriser son Windows XP

Identification sur le site de la Chambre de Métiers et de l'artisanat de l'ain

Installation d'une machine virtuelle avec Virtualbox

Documentation utilisateur. [EIP] TransLSF

Gestion d Active Directory à distance : MMC & Délégation

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Navigation dans Windows

Facebook : Attention aux images!

Installation d'un serveur DHCP sous Windows 2000 Serveur

les fakes logiciels et rogue AV

Compte-rendu de projet de Système de gestion de base de données

Utiliser ma messagerie GMAIL

Mais ce n est intéressant que si tu passes à l action Cliquez ici pour aller plus loin

Questionnaire pour connaître ton profil de perception sensorielle Visuelle / Auditive / Kinesthésique

1 sur 5 10/06/14 13:10

Qu est ce qu une bibliothèque?

Aperçu rapide de PC BSD 1.2.

Guide de l informatique Le courrier électronique

Installation de TeamLab sur un serveur local Ce guide est destiné aux utilisateurs ayant des connaissances de base en administration Windows

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Fiche animateur : module écriture collaborative

Prototypage électronique

client. ECOUTE, SIMPLICITE, SERVICE... Pour ELCIA, l'accompagnement est la clé de la satisfaction ELCIA, le savoir-faire et l'écoute

Création de Sous-Formulaires

KeePass - Mise en œuvre et utilisation

13 conseils pour bien choisir son prestataire de référencement

Ceci est un Chromebook, ton ordinateur!

CD, DVD: quel disque choisir pour stocker ses fichiers?

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Guide de la création de site E-commerce pour les débutants


Comment faire des étiquettes d adresse avec LIBREOFFICE, à partir d un fichier EXEL ou CALC

Dossier table tactile - 11/04/2010

Guide de l'utilisateur. Linksys AE1000 Adaptateur USB sans fil - N hautes performances

Site Internet d inscriptions en ligne

TÉMOIGNAGES de participantes et de participants dans des groupes d alphabétisation populaire

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt.

Quels sont les espaces disponibles sur l ordinateur pour stocker ses documents et comment accéder facilement au dossier «My Documents»?

Télécharger et Installer OpenOffice.org sous Windows

L'art d'utiliser les assistants virtuels. et ainsi multiplier sa productivité!

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

Tutorial et Guide TeamViewer

Fais ton site internet toi-même

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

INSTALLATION MYSQL POUR WINDOWS (XP OU 2000)

Upgrade du Huawei U8230 : Android 2.1 et rom custom

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

Guide de l'utilisateur

Guide d'utilisation du Serveur USB

1. Utilisation du logiciel Keepass

Contrôle Parental Numericable. Guide d installation et d utilisation

Vous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.

TeenSpeak. À propos de la santé sexuelle. La vérité vue par les ados

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

Formulaire pour envoyer un mail

Publipostage et étiquettes

Linux Quimper Réseau libre d'utilisateurs manchots.

Rebecca Léo Thomas Gaspard

TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )

Créer votre propre modèle

LA CONFIANCE CrytalSanté

ENSIAS Rapport De Stage BPCS. Rapport de stage. Encadré par : MAREQUAZ Saâd. Réalisé par : Pratic Abdellah

Alice s'est fait cambrioler

Microsoft Application Center Test

Tutoriel d'introduction à TOR. v 1.0

Riddle Blocks. Jeu sous Android. - Yann Bertrand. Membres de l'équipe : - Clément Guihéneuf TS5. - Guillaume Renotton TS4

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Sauvegarde et restauration d'un système d'exploitation Clonezilla

Séquence de découverte de SparkAngels Logiciel d entraide numérique

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

TP 1. Prise en main du langage Python

et de suivi de la corpulence des enfants

Transcription:

LeeWee Simple Syntaxe par Lhoumaud David

Chapitre 1 le pourquoi du comment LeeWee n'as pas toujours eu ce nom. Pourquoi commencer ce livre avec cette phrase? Je ne saurais vous dire, si ce n'est que c'est la première chose qui m'est venue à l'esprit. LeeWee est à l'origine un projet qui m'a permit de dire à tous ceux qui ont fait de longues études en informatique «Moi aussi je peux faire parti du délire avec vous...». Ma thèse en gros...la thèse d'un peintre en bâtiment qui a dû arrêter l'école au collège en 5ième pour être franc avec vous. Comment apprendre la programmation informatique avec zéro connaissance dans ce domaine. Le seul moyen que j'ai trouvé est de me créer mon propre langage ou plutôt devrais-je dire mon propre pseudo langage. Suite à de nombreuses recherches sur internet et bien entendu de nombreux cassages de dents par des internautes peu compréhensifs, j'ai réussi à trouver un moyen de me faire çà de la façon la plus simple possible. Avant de commencer à vous expliquer la logique que j'ai utilisée je vais d'abord faire un petit tour historique. Comme je le disais dans la toute première phrase LeeWee n'a pas toujours eu ce nom, quand j'ai eu l'idée de créer mon langage je l'avais d'abord nommé Level++ mais après à peine une semaine je me suis vite rendu compte que ce diminutif été vraiment prétentieux pour un langage qui n'avait pas d'existence réelle. A savoir qu'au moment où cette idée m'est venue, j'étais en pleine migration entre le système d'exploitation Microsoft Windows et GNU/Linux, donc à partir de là j'avais décidé de le nommé LinWin. Mais je me suis rendu compte que je n'avais pas envie ou plutôt plus envie de développer pour Microsoft Windows pour un tas de raisons éthiques et économiques. Après quelques jours de réflexion j'ai fini par le nommer LeeWee avec comme logo la représentation de mon chat «Akira» que j'ai vu naître et surtout que personne ne voulait tellement il était rachitique. Aucune connaissance dans le domaine...oui, donc il a fallut y remédier très 2

rapidement pour me mettre à la tâche. J'ai commencé à développer sur la plateforme Microsoft Windows XP en langage Delphi avec l'ide de chez Borland. Mais bon un langage libre développé avec un langage propriétaire ça le fait pas trop donc je me suis vite redirigé vers le langage FreePascal avec l'ide Lazarus qui a le mérite d'évoluer de façon exponentielle ce qui n'est pas le cas de certains...enfin cela n'appartient qu'à moi. Suite à une toute petite auto-formation je me suis lancé pleinement dans mon projet. «Ahahah!!!» me cracherons certains, car quand je dis auto-formation je vous avouerais ne mettre formé que sur les chaines de caractères et sur certaines bases fondamentales de la programmation dit orienté objet. 3

Chapitre 2 Une histoire de logique Avant toutes choses j'ai décidé d'en faire un langage interprété pour une meilleure ouverture et non un langage compilé. Cela permet de pouvoir modifier n'importe quel code avec un simple éditeur de texte sans avoir recours à un compilateur, et franchement cela m'aurait alourdi la tâche déjà pas simple au premier abord. Interprété comme le langage Python, Perl, Shell et j'en oublie... Simple, efficace et surtout libre à tous points de vue, tout ce que j'aime dans la programmation. Pendant un bout de temps je me suis mis à réfléchir à comment m'y prendre pour interpréter un code. Devant moi s'offrent deux possibilités l'interpréteur li le code soit grâce à des blocs soit ligne par ligne. Je dois avouer que la seconde possibilité m'a paru plus simple à mettre en œuvre pour le peu de connaissances que j'avais. Un simple fichier texte qui est lu ligne par ligne et qui interprète chaque ligne suivant les arguments de celle-ci, comme on le ferait pour lire un bouquin. Donc me voici dans le vif du sujet...il me faudra créer une boucle qui analyse mon fichier texte ligne par ligne. Extrait de code PROCEDURE Traitement; begin code.beginupdate; Try for Numero_de_la_ligne_en_cours := Numero_de_la_ligne to code.count -1 do begin end; finally code.endupdate; end; end; // Analyse de la ligne en cours de lecture 4

L'extrait de code présenté ci-dessus n'est pas fonctionnel en l'état car je n'est pas déclaré les variables : Numero_de_la_ligne_en_cours, Numero_de_la_ligne, code. pour des raisons de lisibilité. Toutefois le procédé utilisé dans LeeWee est le même. Notre boucle créée nous pouvons maintenant nous attaquer à la phase interprétation de la ligne en cours de lecture. Là on peu se lâcher car plusieurs méthodes d'analyse sont faisables. Pour ma part je vais avant tout déterminer le premier mot de la ligne actuelle. Je nomme cette méthode «Analyse par mots clé». Ensuite je n'ai plus qu'à récupérer les arguments pour pouvoir les interpréter. Pseudo code SI à gauche du premier espace de la ligne actuelle = au mot 'fenêtre' ALORS Nom_de_la_fenetre = à droite du premier espace Création de la fenêtre Nom_de_la_fenetre SINON SI à gauche du premier espace de la ligne actuelle = au mot 'bouton' ALORS Nom_du_composant = entre le premier espace et le mot 'dans' Nom_de_la_fenetre = à droite du mot 'dans' Création du bouton dans la fenêtre Nom_de_la_fenetre Extrait d'un code LeeWee Fenêtre fen01 Bouton btn01 dans fen01 Voilà la logique que j'ai utilisée pour développer mon pseudo langage LeeWee. Je l'ai nommé «Logique brute». 5

Chapitre 3 Mais où va t'on? Malgré une petite histoire, une simple logique, je n'avais pas trouvé de spécificité à LeeWee. Pourtant la majorité des langages de programmation ont leurs points forts et bien entendu leurs points faibles plus ou moins variés... Comme je vous l'avez expliqué dans le premier chapitre l'idée de me créer un langage de programmation m'est venue dès le début de mon apprentissage dans le développement informatique, une thèse rien de plus...oui, mais bon, au final avoir fait tout ça dans un simple but égocentrique serait du gâchis à mon sens. Lors d'un remaniement de la syntaxe je me suis permis de partager le début du travail remanié à la communauté Française d'ubuntu via la mailing liste. Là, comme d'habitude les retours se font ressentir assez rapidement. Ce que certains considèrent comme critique, moi je le prend comme future évolution. Dans ces critiques l'une d'elles m'a paru plus pertinente que les autres «Pourquoi ton langage à une syntaxe en langue française?». Oui effectivement j'avais basé la syntaxe de LeeWee sur ma langue maternelle, ce qui aurait pu être un avantage devient un inconvénient plus que désagréable. Là j'avais ma spécificité, le petit truc qui ferait de mon pseudo langage un véritable petit langage à par entière. «De quoi il parle là le Crafty?». Bein c'est pas compliqué, pourquoi ne pas développer un langage qui aurait la particularité d'utiliser comme syntaxe la langue maternelle de n'importe qui dans le monde? Voir allez plus loin, pourquoi ne pas permettre à quiconque de remanier la syntaxe comme bon lui semble. Un véritable petit langage modulable à volonté. Ce qui permettrait à monsieur et madame tout le monde habitant en Angleterre de créer un code en anglais et qui me permettrait à moi petit gaulois de le remanier, le mettre à jour, avec une syntaxe Française. Voilà je tiens ma spécificité entre les doigts. Maintenant il ne me reste plus qu'à le mettre en place. Sur les systèmes d'exploitation GNU/Linux, je me suis rendu compte que je n'avais pas besoin de sélectionner la langue à utiliser pour telle ou telle application, car si le travail est bien effectué on utilise une librairie de fonctions existantes sur tous OS dignes 6

de ce nom, son nom justement 'GETTEXT'. Au début j'avais peur que cette librairie de fonctions ne soit pas disponible dans mon langage de prédilection c'est à dire le FREEPASCAL, mais à ma grande surprise je me suis rendu compte que celle-ci existait et fonctionnait à merveille. 7

Chapitre 4 Les Composants, évènements et fonctions paramétriques. Je vais vous présenter les différents composants, mais avant tous, qu'est-ce qu'un composant? Bein c'est tout simplement un bouton, un champ de texte...tous se qu'il va faire de votre interface un véritable programme graphique. Enfin véritable il nous manque encore quelques trucs avant de pouvoir dire véritable... Commençons notre listing des composants : LA FENÊTRE: window nom_fenetre afficher fermer dimension largeur hauteur position x y visible activer titre Évènements disponibles : fermer clique double clique 8

LE BOUTON: button nom_bouton in nom_parent dimension largeur hauteur position x y titre activer visible Évènements disponibles : LE LABEL: label nom_label in nom_parent dimension largeur hauteur position x y titre activer visible Évènements disponibles : LE ÉDITION: edit nom_edit in nom_parent dimension largeur hauteur 9

position x y texte activer visible Évènements disponibles : LE ZONE: zone nom_zone in nom_parent dimension largeur hauteur position x y activer visible Évènements disponibles : L' IMAGE: label nom_label in nom_parent dimension largeur hauteur position x y activer visible étirer proportionel 10

Évènements disponibles : LE CHRONO: chrono nom_chrono in nom_fenetre Évènements disponibles: Fonctions paramétriques : AFFICHER: display nom_fenetre FERMER: close nom_fenetre Disponible pour: DIMENSION : dimension type_composant.nom_composant (largeur, hauteur) bouton étiquette édition zone image POSITION: position type_composant.nom_composant (x, y) bouton étiquette 11

édition zone image ALIGNEMENT: alignment type_composant.nom_composant (top bottom right left) bouton étiquette édition zone image TITRE: title type_composant.nom_composant (''title'') bouton étiquette TEXTE: text type_composant.nom_composant (''text'') édition ACTIVER: activate type_composant.nom_composant (true false) bouton étiquette édition zone image VISIBLE: 12

visible type_composant.nom_composant (true false) bouton étiquette édition zone image Évènements : CLIQUE : Disponible pour: 13