NOTIONS sur la TRADUCTION Applications en Informatique Notions sur la traduction 0) Motivation et objectifs 1) Notions de base 2) Analyse lexicale 3) Automates Using Linux /Unix Compiler of compilers tools - lexical analysis - syntaxic analysis - grammar specification 4) Grammaires 5) Analyse syntaxique 10/04/12 Télécom SudParis / CSC 4508 Notions sur la traduction 1
NOTIONS SUR LA TRADUCTION : motivations et objectifs - des langages partout - quelle base commune? quelles limites? - et en pratique? - objectifs 10/04/12 Télécom SudParis / CSC 4508 Notions sur la traduction 2
DES LANGAGES PARTOUT (1) a Langages de programmation HTML, XML, JavaScript C, C++, Java, C#, Ada, Ruby, Basic, Perl, Python, PHP, Tcl/Tk Smalltalk, Prolog, Lisp, Scheme Exemples typiques de langages de type2, ou "context free" b c Déploiement, administration, réseau, systèmes répartis Génie logiciel, transformations shells (sh,csh,ksh,bash ) commandes "filtres" (grep, sed, awk ) commandes de systèmes (automates, serveurs ) spécifications Make, Ant Xpath, routage basé sur XML, description de Web services, de ressources Web édition syntaxique, " beautifiers " extraction de références croisées, décompilation (byte-code, langage machine) recherche de la structure de programmes d Conception de systèmes materiels/logiciels langage de spécifications (B ) description de protocoles (Lotos ) langages de simulations (OpNet) spécifications hardware (VHDL ) programmation de FPGAs 10/04/12. Télécom SudParis / CSC 4508 Notions sur la traduction 3
e f g h i DES LANGAGES PARTOUT (2) Documents, multimedia, description objets, scènes, animations Recherche, extraction Interaction homme / machine, comportements, jeux Description, reconnaissance de formes Systèmes formels, solveurs Latex, ps, PDF Flash, SVG variantes de XML, XUL, Xalan, Xerces SMIL VRML, Povray, RenderMan ActionScript, MEL, Shaders (HLSL, GLSL, Cg ) recherche d information sélective filtrage (spam ) analyse (fichiers de logs, business reports ) langages de requêtes DB web mining, XMLquery description, reconnaissance de phonèmes description, reconnaissance de phrases simples aide à la traduction de langage naturel langages gestuels, description de stratégies biologie (croissance des plantes, structure des gènes ) analyse de séries temporelles (courbes, bourse ) analyse de traces (pannes, interactions d automates ) recherche de formes communes (workflows ) expressions mathématiques, descriptions géométriques Maple, Mathematica, résolution de problèmes logiques (Prolog, OPLStudio ) 10/04/12 Télécom SudParis / CSC 4508 Notions sur la traduction 4
QUELLE BASE COMMUNE, QUELLES LIMITES? Il y a des fondements : les grammaires et systèmes formels Ah, bon! Grammaires / Langages type 0 récursivement énumérables type 1 dépendants du contexte type 2 indépendants du contexte type 3 langages réguliers Modèle de machine machine de Turing automates à ressources bornées automates à pile automates à états finis = l ordinateur idéal Les plus couramment utilisés en informatique - peut calculer tout ce qui est calculable automatiquement - un réseau d automates aussi - mais l asynchronisme rend les problèmes "complexes" - et on suppose que les problèmes "complexes" ne sont pas solubles en temps polynomial La théorie (langages, calculabilité) explore ce que l on peut décrire / calculer automatiquement Super 10/04/12 Télécom SudParis / CSC 4508 Notions sur la traduction 5
ET EN PRATIQUE? langages type 3 = expressions régulières (e.r.) - reconnues par automates à états finis. de nombreuses commandes informatiques utilisent les e.r. de nombreux automates matériels sont basés sur les e.r. - outils pour définir/reconnaître des e. r. personnalisées - Linux: flex (lex) : un générateur d analyseurs lexicaux - logiciels ou packages spécialisés (Perl ) langages type 2 = "langages informatiques" - d un usage de + en + fréquent, au delà des langages de programmation Voir exemples b, c, d, e, f, g, h, i - outils pour définir/reconnaître une grammaire personnalisée - Linux: bison (yacc) : un générateur d analyseurs syntaxiques - outils ou packages spécialisés (p.ex. en Java: javacc, jaxp, ) 10/04/12 Télécom SudParis / CSC 4508 Notions sur la traduction 6
NOTIONS sur la TRADUCTION: OBJECTIFS 1 2 pouvoir utiliser les générateurs d analyseurs flex, bison ( Linux). reconnaissances de difficulté moyenne, petites transformations. en combinant analyses lexicale et syntaxique pouvoir utiliser efficacement les logiciels basés sur les expressions régulières et grammaires. Shell, commandes, environnements usuels. puis + tard selon les besoins (Xpath, analyseurs SAX et DOM, etc) 3 pouvoir expliquer et utiliser les principales notions (définitions, cas d application, problèmes usuels, solutions) :. automates et expressions régulières (spécification, fonctionnement, relations ). grammaires (définition, spécification, classes de grammaires ). principes de reconnaissance, connexion avec la complexité des algorithmes 4 pouvoir approfondir en cas de besoin. se reporter à des ouvrages spécialisés. rechercher, choisir des outils 10/04/12 Télécom SudParis / CSC 4508 Notions sur la traduction 7