Langage de scripts : historique et définition



Documents pareils
Éléments de programmation et introduction à Java

Environnements de développement (intégrés)

Architectures web/bases de données

Évaluation et implémentation des langages

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Module BD et sites WEB

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

les techniques d'extraction, les formulaires et intégration dans un site WEB

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Préparation à l examen EFA en Macro

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Mise en œuvre des serveurs d application

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

Java et les bases de données

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Catalogue des Formations Techniques

TP1. Outils Java Eléments de correction

Chapitre I Notions de base et outils de travail

Remise à niveau d un programme JAVA du domaine public

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Vulgarisation Java EE Java EE, c est quoi?

Introduction à Microsoft InfoPath 2010

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

CH.3 SYSTÈMES D'EXPLOITATION

Rebol, un langage «différent»

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Programmation C. Apprendre à développer des programmes simples dans le langage C

Exonet : sauvegarde automatisée d une base de données

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Catalogue des formations

Armand PY-PATINEC 2010

Nouveautés Ignition v7.7

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Projet de développement

Rapport de Mini-Projet en ArcGIS Engine

Point sur les solutions de développement d apps pour les périphériques mobiles

«Clustering» et «Load balancing» avec Zope et ZEO

OmniVista 2700 Application complémentaires pour l OmniVista 2500 Network Management

Introduction au langage C

CATALOGUE DES FORMATIONS LANGUES

de logiciels Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement iphone, Android WebApp HTML5 Mobile marketing

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Systèmes en réseau : Linux 1ère partie : Introduction

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Introduction à. Oracle Application Express

Annexe : La Programmation Informatique

MF-Test. Les tests de non-régression de vos applications mainframe

Bibliothèque Numérique L'intégrale Collection Ressources Informatiques

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Programmation d'applications sur PDA

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Programmation Web. Madalina Croitoru IUT Montpellier

RAPID Prenez le contrôle sur vos données

Cours Bases de données

Yann Struillou. Domaines de compétence. Développeur Web & Logiciels. 37 ans, en couple, 2 enfants. 19 hameau de Kerguillec Tréméoc

Etablit des Budgets et des Quotas Utilisateurs par Montant, Nombre de pages, copies et types de fichiers.

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Stage Ingénieur en développement logiciel/modélisation 3D

Architecture client riche Evolution ou révolution? Thomas Coustenoble IBM Lotus Market Manager

Idéalement, une mission alliant XML ou base de données SQL avec des technologies internet et/ou logiciels libres.

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

Windows Server Chapitre 1: Découvrir Windows Server 2008

Introduction aux Bases de Données Relationnelles Conclusion - 1

Table des matières Hakim Benameurlaine 1

Moderniser. le système d information et le portefeuille applicatif.

Présentation du logiciel

L art d ordonnancer. avec JobScheduler. François BAYART

Retour d'expérience avec : OCS Inventory & GLP

Outils de développement collaboratif

Partner Entreprise. Modules de cours pour la formation continue Offre IFAPME Verviers

ISTIA INNOVATION. 62, Ave ND du Lac F Angers

Alexandru V. Vlad RADIAN Solution Architect, Lead IT developer

Préconisations Portail clients SIGMA

Environnement Zebra Link-OS version 2.0

WINDOWS Remote Desktop & Application publishing facile!

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Qu est-ce que ArcGIS?

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Introduction à l informatique en BCPST

Expert technique J2EE

Environnement Informatique EMSE Linux

palais des congrès Paris 7, 8 et 9 février 2012

Transcription:

Langage de scripts : historique et définition Laurent Pierron INRIA Lorraine / LORIA scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.1/46

Plan de la présentation Des langages de commandes aux langages de scripts orientés-objets, de nombreuses filiations Tentative de définition des langages de scripts par leurs caractéristiques scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.2/46

Histoire des langages de scripts Histoire non exhaustive et biaisée Evolution de l informatique : architecture et systèmes d exploitations langages de programmation orienté modèle langages de script scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.3/46

Préhistoire : avant 1970 Grands systèmes, traitements par lot Langages spécialisés : COBOL (gestion), Fortran (numérique), LISP (IA), APL Scripts : Job Control Language (JCL sur OS/360) Affectation des ressources : mémoire, bandes, lecteurs de cartes Sélection des programmes : compilateur, programme de traitement scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.4/46

Moyen-âge : 1970-1980 Mini-systèmes, moniteurs transactionnels, Multics, Unix, premiers tableurs Langages : Pascal, PL-1, C, Basic, Prolog Scripts : shells Unix interactif composants = programmes filtres communication = texte ASCII + pipe structure identique langage algorithmique scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.5/46

Pré-moderne : 1980-1990 Ordinateurs personnels Systèmes : DOS, MacOS, X11, Emacs, Excel interfaces graphiques base de données relationnelles Langages : Smalltalk, C++, Objective-C, PostScript (impression), SQL programmation orientée-objet conception orientée-objet scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.6/46

Pré-moderne : 1980-1990 Scripts : awk, tcl/tk,.bat, Emacs-Lisp, Macro-Excel, Rexx(IBM) transformation de données extension d applications par scripts scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.7/46

Age moderne : 1990-2000 Internet, Linux, Windows, HTML/XML, Corba ordinateurs sur réseau mondial montée en puissance : calcul, mémoire, stockage hypertexte Langages : Java, Hypercard (graphique) Langages orientés application graphique Langages orientés réseau scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.8/46

Age moderne : 1990-2000 Scripts : Perl, Python, JavaScript, VisualBasic, AppleScript, PHP Langages universels similaires aux langaes applicatifs Composants = fonction de bibliothèques Données = objets complexes Langages orientés objets scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.9/46

Et demain... Parrot : fusion Python+Perl Ruby : mieux que Perl et Python Scripts embarqués dans les documents : EcmaScript pour XML et XSL VBScript document utilisateur PHP/ASP documents HTML côté serveur scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.10/46

Et demain... Environnement de développements graphiques (IDE) à la VisualBasic : composants cliquables à la InterfaceBuilder : RAD classique à la PowerBuilder : de la conception au programme Scripter son environnement pour en tirer plus... scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.11/46

Quelques histoires particulières Tcl/Tk VisualBasic Perl Python scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.12/46

Tcl/Tk : Tcl Tcl créé en 1988 par John Ousterhout à Berkeley et suivi chez Sun puis Scriptics Besoin d un langage de commande pour des applications interactives Buts : Langage extensible, intégrable dans les applications, simple, générique scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.13/46

Tcl/Tk : Tk Tk créé fin 1988, nécessite deux ans pour être fonctionnel But : développer des interfaces graphiques (GUI) avec peu de développeurs Ecriture sous forme de composants en extension de Tcl scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.14/46

Tcl/Tk : Croissance Popularité croissante dizaine de milliers d utilisateurs en 1993 Application GUI en pur Tcl/Tk développée 5 à 10 fois plus vite qu en C/Motif GUI Tk intégré aux langages : Perl, Python Permet de développer des applications graphiques portables sur différents systèmes Extension objet : [incr Tcl] Tcl héritier direct des shells Unix par sa syntaxe et ses concepts scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.15/46

Tcl : 99 bouteilles de bière (1/2) proc bottles {i} { return "$i bottle[expr $i!=1?"s":""]" } proc line123 {i} { puts "[bottles $i] on the wall," puts "[bottles $i]," puts "take one down, pass it around," } scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.16/46

Tcl : 99 bouteilles de bière (2/2) proc line4 {i} { puts "[bottles $i] on the wall.\n" } for {set i 99} {$i>0} {} { line123 $i incr i -1 line4 $i } scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.17/46

Tcl/Tk chez SourceForge 443 projets dont Tcl lui-même 2 projets dans les 100 projets les plus actifs Nebula Device - Realtime 3D game/visualization engine, written in C++, scriptable through Tcl/Tk BLT Toolkit - Adds new commands and widgets to Tcl :2D graph, barchart, stripchart, tab notebook, tree viewer. Visual Tcl - development environment for UNIX, Windows, Mac and AS400. Entirely written in Tcl/Tk. Generates scripting.tex Langage de scripts : historique pure et définition Tcl/Tk Laurent Pierron code. 23/1/2002 17:32 p.18/46

VisualBasic Langage propriétaire Microsoft sorti le 10 mai 1991, uniquement sous Microsoft Windows La version 3.0 permet d intégrer des composants logiciels Langage hérité de Basic, fourni avec les premières générations de MS-DOS, langage de programmation classique simple à utiliser orienté objet scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.19/46

VisualBasic Objectif : Programmation applications Microsoft (Word, Excel, Access) composants ActiveX Création d interface graphique à la souris en assemblant des composants graphiques VisualBasic a donné un avatar VBScript pour programmer des applications Internet INCONVENIENT : complètement propriétaire Produit stratégique d après Microsoft scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.20/46

VisualBasic : 99 bouteilles de bière Dim n As Integer Dim s As String Width = 6000 Height = Screen.Height * 2 / 3 Top = (Screen.Height - Height) / 2 Left = (Screen.Width - Width) / 2 Caption = "99 Bottles of Beer" List1.Top = 0 List1.Left = 0 List1.Width = Form1.ScaleWidth List1.Height = Form1.ScaleHeight scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.21/46

VisualBasic : 99 bouteilles de bière List1.AddItem s & "99 bottles of Beer List1.AddItem s & "99 bottles of Beeee List1.AddItem "You take one down, pass For n = 98 To 1 Step -1 s = IIf(n = 1, n & " final bottle", List1.AddItem s & " of Beer on the List1.AddItem "" List1.AddItem s & " of Beer on the List1.AddItem s & " of Beeeer..." List1.AddItem "You take one down, p Next n List1.AddItem "No more bottles of Beer scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.22/46

VisualBasic sur sourceforge 580 projets dont 2 dans les 100 plus actifs Exemples de projets actifs : Bugs Online - Very simple and powerful ASP/Access based bug tracking system Decal - plugin shell for Asheron s Call Virtual Person Level 1 - provide a generic, user friendly platform to create an artificial speaker of natural language Innombrables sites Internet consacrés à VisualBasic scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.23/46

Perl : le chameau Auteur : Larry Wall, 1987 Larry Wall n était pas satisfait de grep, sed et awk pour créer des rapports systèmes Perl emprunte beaucoup à awk : syntaxe, expressions régulières, tableaux associatifs Manipulation de chaîne de longueur arbitraire Succès universel de Perl auprès des administrateurs systèmes Unix et des premiers programmeurs de serveurs Web scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.24/46

Perl : le chameau Perl5 introduit des définitions de classes et d objets Perl a été porté sur plus de 80 systèmes différents (PDAS y compris), absents : PalmOS et Java scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.25/46

Perl : 99 bouteilles de bière $nbot = $ARGV[0]; $nbot = 100 if $nbottles eq $nbot < foreach (reverse(1.. $nbot)) { $s = ($_ == 1)? "" : "s"; $onelesss = ($_ == 2)? "" : "s"; print "\n$_ bottle$s on the wall,\n"; print "$_ bottle$s of beer,\n"; print "Take one down, pass it around, print $_-1, " bottle$onelesss on the } print "\n*burp*\n"; scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.26/46

Perl sur sourceforge 2839 projets dont 6 dans les 100 premiers net-snmp - tools and libraries relating for Simple Network Management Protocol Fink - bring the full world of Unix Open Source to Darwin and Mac OS X AWS - web server logfile analyzer HW+ / DXR3 device driver for Linux for two DVD playback cards Webmin System stats - graphical statics display of history scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.27/46

Python : Origine Auteur : Guido Van Rossum, Noël 1989 Langage de script extensible pour programmer un nouveau système d exploitation, mieux que C et primitives systèmes plus fines qu en Bourne shell Langage aussi facile à apprendre et utiliser que le langage ABC de l INRIA, avec fonctionnalités de Modula-3 scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.28/46

Python : Origine Première version réalisée pendant les vacances de Noël 1989 Première version diffusée sur Internet en février 1991 Nom d après les Monty Python s Flying Circus Python est orienté-objet, extensible et embarquable dans une application scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.29/46

Python : Usage Python peut scripter des applications Java Python peut scripter des composants ActiveX comme VisualBasic Python fonctionne en natif sur tous les systèmes classiques y compris PDAs (Palm, Psion, WinCE), PlayStation, magnétoscopes (VxWorks) Python fonctionne également partout où Java fonctionne scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.30/46

Python : 99 bouteilles de bière def bottle(n): try: return { 0: "no more bottles", 1: "1 bottle"}[n] except KeyError: return "%d bottles" % for i in range(99, 0, -1): b1, b0 = bottle(i), bottle(i-1) print "%(b1)s on the wall, %(b1)s,\n"\ "take one down, pass it around,\n "%(b0)s on the wall." % locals() scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.31/46

Python sur sourceforge 1350 projets dont Python lui-même et 6 projets dans les plus actifs CvsGui - high-end interface clients (WinCvs, MacCvs, gcvs) on top of cvs Crystal Space 3D - 3D SDK for Linux, Windows, Macintosh, NeXT, BeOS. SCons - software construction tool (build tool, substitute for Make) Mailman - the GNU mailing list manager Jython - Java implementation of Python scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.32/46

Caractéristiques des langages de script scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.33/46

Assemblage de composants Suppose existence composants utiles Ex : Composants interface utilisateur sous VB, Tcl/Tk Ex : Programmes filtres sous Unix shell Extension des composants Algorithmes et données simples scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.34/46

Typage de données faible Simplification interface composants => faible typage Variables interchangeables et automatiques Codes et données interchangeables Création/exécution de code à la volée Orienté chaînes de caractères = représentation uniforme scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.35/46

Données uniformes Pas de restrictions d usage Généricité des fonctions Ex. shell : select grep script wc Tout est flux de caractères Connection E/S par pipe Réutilisation encouragée scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.36/46

Langages fortement typés Interfaces incompatibles Objets spécifiques Ecriture de convertisseurs Recompilations éventuelles Réutilisation peu encouragée Multiplication des objets scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.37/46

Un exemple en Tcl button.b -text Salut! -font {Times 16}- command puts salut+ Bouton avec texte en Times 16 Clic sur bouton affiche texte Tout est chaîne : propriétés (-text), programmes (puts..), valeurs (Salut!) Arguments de commandes ordre quelconque, éventuellement absents button accepte 20 arguments scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.38/46

Même exemple Java/C++ Code en plus des déclarations : Java : 7 lignes de code, 2 méthodes C++ (MFC) : 25 lignes de code, 3 procédures Surcharge due au fort typage Font en C++ : déclaration+initialisation+setfont (3 lignes, 14 paramètres) scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.39/46

Détection des erreurs Erreurs de syntaxe à l analyse Types à l exécution vs. compilation Outils d analyse de code Moins de code = moins d erreurs scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.40/46

Interpréteurs Cycle développement-test rapide Programmation à l exécution : ex. Word+VB Génération de code à la volée : ex. Tcl Web navigateur : HTML->code tcl->exécute scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.41/46

Types de base Principes de conception : simples, puissants, génériques Chaînes de longueur arbitraire Listes Tableaux associatifs scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.42/46

Performances Peu rapide pour des itérations mais peu d itérations Cause : interprète, haut niveau Dépend des composants Très performant pour les types de base scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.43/46

Langage de haut niveau 1 instruction = 100 000 instructions machine 1 instruction C = 5 instructions machine Primitives haut niveau ex. Perl : expression régulière comme addition scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.44/46

Eléments de choix langage de scripts Richesse bibliothèque de composants Intégration de nouveaux composants Facilité par le langage Mécanismes pour d autres langages Facilité d apprentissage Lisibilité du code scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.45/46

Conclusion Utilisation : assemblage de composants Développement rapide Apprentissage aisé Pour utilisateur non expert en programmation scripting.tex Langage de scripts : historique et définition Laurent Pierron 23/1/2002 17:32 p.46/46