Pl 2-bis

219 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
219
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Pl 2-bis

  1. 1. CSI3525: Concepts des Languages de Programmation Notes # 2 bis: Conception et Implementation des Languages 1
  2. 2. Influences sur la Conception desLangages I: Architecture des Ordinateurs Les langages les plus populaires des 35 dernieres annees ont ete cree autour de l’architecture prevalente: la Machine Von Neumann Ces langages sont les langages imperatifs. Dans une machine de Von Neumann, les donnees et les programmes sont enregistres dans la meme memoire. L’unite centrale de traitement est separee. Donc, les instructions, les donnees d’entrée et les resultats d’operations doivent etre transmis entre la memoire et l’unite centrale. 2
  3. 3. La Machine Von Neumann MemoireResultat des Instructions et DonneesOperations Clavier, Unite de Unite de Terminal, Calcul & Controle Imprimante, de Logique etc. 3
  4. 4. Caracteristiques des LangagesImperatifs A cause de l’architecture de la machine de Von Neumann, les caracteristiques principales des langages imperatifs sont: – Les variables ⇔ les cellules de memoire – Les instructions d’attribution ⇔ l’operation de transmission. – Les repetitions iteratives ⇔ la methode la plus efficace dans cette architecture etant donne que les instructions se trouvent dans des cellules de memoire adjacentes (plus efficace que la recursivite). Bien que les langages fonctionnels presentent beaucoup de benefices, ils ne peuvent pas etre implementes de facon tres efficace sur les machines Von Neumann. 4
  5. 5. Influences sur la Conception desLangages II: Methodologies deProgrammation (I) Dans les annees 1960s, les programmes etaient en grande part non-structures. A cause de la complexite des nouveaux programmes et du cout des programmeurs, de nouvelles methologies se sont developpees: programmation du haut en bas (top-down) et rafinement pas a pas (step-wise). Les problemes des langages de programmation de l’epoque etaient: la non-completude de la verification de type et le fait que les structures de controle etaient non-adequates (trop d’usage de GOTOs etait necessaire) ⇒ Les langages ALGOLs 5
  6. 6. Influences sur la Conception desLangages II: Methodologies deProgrammation (II) Vers la fin des annees 1970, il y a eu un changement: plutot que de la programmation orientee sur le processus, on s’est interesse a la programmation orientee sur les donnees, avec une emphase sur l’usage de donnees abstraites pour resoudre les problemes ⇒ SIMULA 67 Au debut des annees 1980, de plus de l’abstraction des donnees, on a ajoute l’orientation objet qui inclut l’heritage et l’attachement dynamique du type ⇒ Smalltalk, C++, Java. La programmation orientee sur le processus n’a pas, tout de meme, ete abandonnee. Au contraire, elle s’est recemment assez developpee, surtout sur le champ de la programmation en parallele. 6
  7. 7. Balance dans la creation deLangages Hoare, 1973 a propos de la creation de langage de programmation: “Il y a tant de criteres importants mais contradictoires que leur reconciliation et satisfaction est une tache de creation majeure.” Example de criteres en conflit: – Fiabilite vs Cout de l’Execution – Expressivite vs. Lisibilite – Flxibilite vs. Securite 7
  8. 8. Methodes d’Implementation I: Organization Virtuelle des Ordinateurs Compilateur Interpreteur de de FORTRAN Macro-instruction Systeme d’Exploitation MachineCompilateurde C Interpreteur de LISPInterpreteur de CompilateurCommandes du de PascalSysteme d’Exploitation 8
  9. 9. Methodes d’Implementation II:Compilation Quand un langage est compile, les programmes sont traduits dans le langage machine qui peut etre, a ce moment, execute rapidement sur l’ordinateur. Le processus de traduction commence au langage de source et passe par les stades suivants: – Analyse lexique, analyze syntaxique, generation de code intermediaire, analyze semantique, optimization, generation de code. De plus, le processus se sert d’une table de symboles et d’un systeme de regroupement (linker). 9
  10. 10. Methodes d’Implementation III: InterpretationPlutot que d’etre compiles, les programmes peuvent etreinterpretes par un autre programme appele l’interpreteur.L’interpreteur represente une simulation logicielle d’unemachine qui utilise un langage de plus haut niveau plutotque des instructions machine. En d’autres termes,l’interpreteur creee une machine virtuelle.L’avantage d’un interpreteur est qu’il permet uneimplementation facile d’aide a la correction au niveau dulangage de source.Le desavantage de l’interpreteur, cependant, est quel’execution d’un programme peut prendre entre 10 et 100fois plus de temps que lorsqu’un compilateur est utilise.De plus, l’interpreteur prend beaucoup de place enmemoire. 10
  11. 11. Methodes d’Implementation IV:Implementation Hybride des Systemes Certaines implementations de langage font un compromis entre compilateur et interpreteur. Elles traduisent le programme de source en un langage intermediaire facile a interpreter. Le resultat est une interpretation plus rapide car plutot que de traduire le code intermediaire en langage machine, le langage intermediaire est interprete. 11
  12. 12. Environements deProgrammation Les caracteristiques d’un langage de programmation ne sont pas la seule mesure de la capacite d’un systeme: l’environement de programmation est aussi tres important. L’environement de programmation est une collection d’outils utilises pendant le developpement d’un logiciel. Ces outils incluent un systeme de fichier, un editeur de texte, un linker et un compilateur, mais aussi, des aides a la correction d’un programme tels que des aides visuels graphiques. 12

×