SlideShare uma empresa Scribd logo
1 de 12
CSI3525:
 Concepts des Languages de
      Programmation
          Notes # 2 bis:
 Conception et Implementation des
           Languages

                                    1
Influences sur la Conception des
Langages 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
La Machine Von Neumann
                    Memoire




Resultat des      Instructions et Donnees
Operations

                                      Clavier,
  Unite de
               Unite de               Terminal,
  Calcul &
               Controle               Imprimante,
  de Logique
                                      etc.

                                  3
Caracteristiques des Langages
Imperatifs
 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
Influences sur la Conception des
Langages II: Methodologies de
Programmation (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
Influences sur la Conception des
Langages II: Methodologies de
Programmation (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
Balance dans la creation de
Langages
 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
Methodes d’Implementation I:
   Organization Virtuelle des Ordinateurs
  Compilateur
                                   Interpreteur de
  de FORTRAN
                                   Macro-instruction


                                         Systeme
                                         d’Exploitation
                         Machine
Compilateur
de C
                                        Interpreteur
                                        de LISP
Interpreteur de
                                    Compilateur
Commandes du
                                    de Pascal
Systeme d’Exploitation
                                      8
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
Methodes d’Implementation III:
 Interpretation
Plutot que d’etre compiles, les programmes peuvent etre
interpretes par un autre programme appele l’interpreteur.
L’interpreteur represente une simulation logicielle d’une
machine qui utilise un langage de plus haut niveau plutot
que des instructions machine. En d’autres termes,
l’interpreteur creee une machine virtuelle.
L’avantage d’un interpreteur est qu’il permet une
implementation facile d’aide a la correction au niveau du
langage de source.
Le desavantage de l’interpreteur, cependant, est que
l’execution d’un programme peut prendre entre 10 et 100
fois plus de temps que lorsqu’un compilateur est utilise.
De plus, l’interpreteur prend beaucoup de place en
memoire.                                    10
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
Environements de
Programmation
 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

Mais conteúdo relacionado

Semelhante a Pl 2-bis

Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfbenfifiaymen36
 
Algorithme et Programmation
Algorithme et ProgrammationAlgorithme et Programmation
Algorithme et ProgrammationMonssifNajim1
 
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.pptMohamed827334
 
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcoursedu
 
Gl slides-cours-1
Gl slides-cours-1Gl slides-cours-1
Gl slides-cours-1Sami Neili
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
presentation-compilateur.pptx
presentation-compilateur.pptxpresentation-compilateur.pptx
presentation-compilateur.pptxSaharSarraj
 
resume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdfresume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdfFootballLovers9
 
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
CompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnCompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsaraayoub440
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfRedaBelattar
 
Programation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptxProgramation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptxDanielATCHADE
 
Cours SE linux
Cours SE linuxCours SE linux
Cours SE linuxIdriss22
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxOlyvierNzighou1
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxOlyvierNzighou1
 

Semelhante a Pl 2-bis (20)

Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdf
 
Algorithme et Programmation
Algorithme et ProgrammationAlgorithme et Programmation
Algorithme et Programmation
 
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
1758yyui3-jjjujujjiopoooooAcetatesA0.ppt
 
43_pps.pdf
43_pps.pdf43_pps.pdf
43_pps.pdf
 
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
 
Gl slides-cours-1
Gl slides-cours-1Gl slides-cours-1
Gl slides-cours-1
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
presentation-compilateur.pptx
presentation-compilateur.pptxpresentation-compilateur.pptx
presentation-compilateur.pptx
 
Chapitre 01 - Notions de base
Chapitre 01 - Notions de baseChapitre 01 - Notions de base
Chapitre 01 - Notions de base
 
resume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdfresume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdf
 
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
CompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnCompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
 
Matinée7 logiciel libre
Matinée7   logiciel libreMatinée7   logiciel libre
Matinée7 logiciel libre
 
Programation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptxProgramation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptx
 
Cours SE linux
Cours SE linuxCours SE linux
Cours SE linux
 
Asd
AsdAsd
Asd
 
Ktab asd
Ktab asdKtab asd
Ktab asd
 
Programmation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptxProgrammation-en-C-ESIITECH-2023-2024.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
 
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 

Pl 2-bis

  • 1. CSI3525: Concepts des Languages de Programmation Notes # 2 bis: Conception et Implementation des Languages 1
  • 2. Influences sur la Conception des Langages 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. La Machine Von Neumann Memoire Resultat des Instructions et Donnees Operations Clavier, Unite de Unite de Terminal, Calcul & Controle Imprimante, de Logique etc. 3
  • 4. Caracteristiques des Langages Imperatifs 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. Influences sur la Conception des Langages II: Methodologies de Programmation (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. Influences sur la Conception des Langages II: Methodologies de Programmation (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. Balance dans la creation de Langages 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. Methodes d’Implementation I: Organization Virtuelle des Ordinateurs Compilateur Interpreteur de de FORTRAN Macro-instruction Systeme d’Exploitation Machine Compilateur de C Interpreteur de LISP Interpreteur de Compilateur Commandes du de Pascal Systeme d’Exploitation 8
  • 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. Methodes d’Implementation III: Interpretation Plutot que d’etre compiles, les programmes peuvent etre interpretes par un autre programme appele l’interpreteur. L’interpreteur represente une simulation logicielle d’une machine qui utilise un langage de plus haut niveau plutot que des instructions machine. En d’autres termes, l’interpreteur creee une machine virtuelle. L’avantage d’un interpreteur est qu’il permet une implementation facile d’aide a la correction au niveau du langage de source. Le desavantage de l’interpreteur, cependant, est que l’execution d’un programme peut prendre entre 10 et 100 fois plus de temps que lorsqu’un compilateur est utilise. De plus, l’interpreteur prend beaucoup de place en memoire. 10
  • 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. Environements de Programmation 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