ALF
Introduction
L’equipe
• Cours:
– Alexandru Radovici (ACS)
• TP:
– Alexandru Radovici (ACS)
– Diana Ghindaoanu (FILS)
– Ioana Culic (ACS)
• Devoir:
– Diana Ghindaoanu (FILS)
– Ioana Culic (ACS)
• Ressources
– Bogdan Nițulescu et l’equipe de CPL de ACS
2
Les courses de programmation
MTDL
PL, SDA, POO
AM, AO, ALF
Ecrier de
programmes
Conception de
programmes
3
Exécuter les
programmes
Sur une machine
Bibliographie
Keith Cooper, Linda Torczon, Engineering a
Compiler
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey
D. Ullman, Compilers: Principles, Techniques, and
Tools, 2nd Edition
Ressources pour le cours ALF
• Site web: http://ocw.cs.pub.ro/courses/alf/
• GitHub issues: https://github.com/upb-
fils/alf/issues
• Diapositives de cours
• Catalogue et calendrier Google
• Les machines virtuelles
• vmchecker
• La documentation
5
Contenu
Cours
• 12 cours
• diapositives
• bibliographie
– Très important de lire
TP
• 12 TP
• Programmation en
Javascript, Flex et Bison
• C’est important de
collabores avec votre
collègues
6
Javascript Flex et Bison
Devoirs
Contenu
• NodeJS
• Langage Simple
• Analyse syntactique
• Analyse sémantique
• Génération de code
Développent
• 8-20 heures pur une devoir
– Test des devoirs avec
vmchecker
• Questions sur Github Issues
Les devoirs sont individuelles
7
Examen
• Semestre
– 5 devoirs (8p)
– activité de TP (2p)
• Session d’examen
– épreuve écrite (5p)
• Note
– > 5 passer
Hall of Fame
Catalin Stancu
2017
Teodor Deaconu
2018
Catrina Bodean
2018
Student Student
Student Student Student Student
Claudia Dumitru
2017
Daniela Constantin
2019
Diana Ghindăoanu
2019
Quelques mots sur ALF
• Automates
– Machines d'état
– Machine de Turing
– Expressions Régulier
• Langages Formelles
– Grammaires
• Compilateurs
– Arbre de syntaxe abstraite
– Three Address Code
– WebAssembly
– Formé SSA
– Graphe de flux du contrôle
Vous utiliserez ces pour
• Vérification des
données
• Extraction des
information dans des
ficher
• Faire de langages de
programmation
• Utilisez le langage
d’assemblage
• Apprendre plus vite un
langage de
programmation
• Un vue d’ensable sure
un system avec des
ordinateurs
Connexions avec autres courses
Connaissances requises
• SdE1
• AO
• LP
• SDA
Connaissances utiles pour
• SdE2
• Infographie
• IA
12
Outils logiciels recommandés
13
Visual Studio Code NodeJS 12 LTS
Alan Turing
• Britannique
• Mathématicien
• Machine de Turing
– Équivalent à des
ordinateurs modernes
Contenu
• Informatique
• Quelques mots sur ALF
• Compilateurs
• Sujets
Bibliographie pour aujourd'hui
• Engineering a Compiler
– Chapitre 1
• Compilers: Principles Techniques and Tools
– Chapitre 1
• 1.1
• 1.2
Langages
• Interprété
– PHP
• Compilé
– C/C++
• Interprété et compilé (JIT)
– Java, Python, NodeJS
Compilateur
Source
Source d’assemblage
Objet
Exécutable
Compilateur
Assembleur
Linker
Plateforme indépendante (d’habitude)
Dépend de l'architecture de l'UC
X86, x64, ARM, ARM64, MIPS, …
Dépend de l’UC & le SE
Bibliothèques
Les compilateurs se trouve
• SDK de langages
• Pilot de cartes vidéo
• Android Runtime (ART)
Android Source Compilateur Java Compilateur DEX
Compilateur sur le
dispositif
Source à assemblage
Code Objet
Pièces de compilation
Frontent Optimiseur Backend
Source
AST
Source
d’assemblage
Frontend
Source
Lexer Parser Semantic
AST
Tokens Parse Tree
Unexpected token … Expected …
Object has no
function …
Lexer
Source
function s(a, b)
{
return a+b;
}
Tokens
FUNCTION: function
IDENTIFIER: s
LP: (
IDENTIFIER: a
COMMA: ,
IDENTIFIER: b
RP: )
LB: {
RETURN: return
IDENTIFIER: a
PLUS: +
IDENTIFIER: b
PV: ;
RB: }
Parser
Tokens
FUNCTION: function
IDENTIFIER: s
LP: (
IDENTIFIER: a
COMMA: ,
IDENTIFIER: b
RP: )
LB: {
RETURN: return
IDENTIFIER: a
PLUS: +
IDENTIFIER: b
PV: ;
RB: }
Parse Tree
function
FUNCTION s LP parameters
a COMMA parameters
b
RP LB statements
return
RETURN expression
a
PLUS
b
PV
RB
AST
function s(a, b)
{
return a+b;
}
FUNCTION (name: s,
parameters: [a, b])
RETURN
PLUS
VAR (name: a)
VAR (name: b)
Backend
AST
Générateur de
code
Allocateur de
mémoire
Allocateur de
registres
Source
d’assemblage
Sujets
• Automates finités
• Expressions régulières
• Grammaires indépendantes du contexte
• Parser
• AST
• WebAssembly
• Représentation de la structure des données
• Génération de code
Ressources pour le cours ALF
• Site web: http://ocw.cs.pub.ro/courses/alf/
• GitHub issues: https://github.com/upb-
fils/alf/issues
• Diapositives de cours
• Catalogue et calendrier Google
• Les machines virtuelles
• vmchecker
• La documentation
29
Questions

Contenu connexe

PPTX
ALF - Introduction
PPTX
ALF 1 - Introduction
PPTX
SdE 2 - Introduction
PPTX
ALF1 - Introduction
PPTX
SdE 10 - Threads
PPTX
Systemes d'explotation: Threads
PPTX
SdE 5 - Communication entre processus et Planification
PPTX
SdE - Introduction
ALF - Introduction
ALF 1 - Introduction
SdE 2 - Introduction
ALF1 - Introduction
SdE 10 - Threads
Systemes d'explotation: Threads
SdE 5 - Communication entre processus et Planification
SdE - Introduction

Tendances (20)

PPTX
SdE2 - Introduction
PPTX
SdE 4: Processus
PPTX
ALF - Introduction (2018)
PPTX
SdE 5 - Planification
PPTX
SdE2 4 - Processus
PPTX
SdE 1 - Introduction
PPTX
SdE 11: Implémentation de Système de Fichiers
PPTX
Systemes d'explotation: Mémoire Virtuelle
PPTX
SdE 4 - Processus
PPTX
SdE 6 - Gestion de la memoire
PPTX
Systemes d'explotation: Systèmes embarquées
PPTX
SdE 3 - Systemes de fichiers
PPTX
SdE 2 - Langage C, Allocation de memoire
PPTX
SdE 8 - Synchronization de execution
PPTX
SdE 6 - Planification
PPTX
Systemes d'explotation: Synchronization de execution
PPTX
SdE 3 - System de fichiers
PPTX
SdE 9 - Threads
PPTX
SdE 2 - System de fichiers
PPTX
SdE 8 - Synchronisation de execution
SdE2 - Introduction
SdE 4: Processus
ALF - Introduction (2018)
SdE 5 - Planification
SdE2 4 - Processus
SdE 1 - Introduction
SdE 11: Implémentation de Système de Fichiers
Systemes d'explotation: Mémoire Virtuelle
SdE 4 - Processus
SdE 6 - Gestion de la memoire
Systemes d'explotation: Systèmes embarquées
SdE 3 - Systemes de fichiers
SdE 2 - Langage C, Allocation de memoire
SdE 8 - Synchronization de execution
SdE 6 - Planification
Systemes d'explotation: Synchronization de execution
SdE 3 - System de fichiers
SdE 9 - Threads
SdE 2 - System de fichiers
SdE 8 - Synchronisation de execution
Publicité

Similaire à ALF 1 - Introduction (14)

PDF
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
PPT
Ch1_IntroductionCh1_Introduction2025.ppt
PDF
0419-langages-de-programmation-et-compilation.pdf
PDF
chaine de production de programmes 2 en pdf
PDF
Algorithme et programmation.pdf
PPTX
Arch_Ord_IF4_Partie1_2020_visio_FST.pptx
PDF
Vhdl bousmah f
PDF
Théorie des langages - 00 - Introduction
PDF
Chapitre 3 - Généralités sur le langage C.pdf
PDF
cours algorithme et structure de données 1er année
PPT
Cours de programmation en langage C. idéal pour les apprenants du langage C
PDF
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
PPT
Langage_C.azadaddzazazazaazeazeazeazeazeazeaze"e"&"e""rfrff"r"e"&e"e"
PDF
Algorithmique_et_programmation_I_Plan_du.pdf
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Ch1_IntroductionCh1_Introduction2025.ppt
0419-langages-de-programmation-et-compilation.pdf
chaine de production de programmes 2 en pdf
Algorithme et programmation.pdf
Arch_Ord_IF4_Partie1_2020_visio_FST.pptx
Vhdl bousmah f
Théorie des langages - 00 - Introduction
Chapitre 3 - Généralités sur le langage C.pdf
cours algorithme et structure de données 1er année
Cours de programmation en langage C. idéal pour les apprenants du langage C
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
Langage_C.azadaddzazazazaazeazeazeazeazeazeaze"e"&"e""rfrff"r"e"&e"e"
Algorithmique_et_programmation_I_Plan_du.pdf
Publicité

Plus de Alexandru Radovici (19)

PPTX
SdE2 - Pilot Tock
PPTX
SdE2 - Systèmes embarquées
PPTX
SdE2 - Planification, IPC
PPTX
MDAD 6 - AIDL and Services
PPTX
MDAD 5 - Threads
PPTX
MDAD 4 - Lists, adapters and recycling
PPTX
MDAD 3 - Basics of UI Applications
PPTX
MDAD 2 - Introduction to the Android Framework
PPTX
MDAD 1 - Hardware
PPTX
MDAD 0 - Introduction
PPTX
SdE 11 - Reseau
PPTX
SdE 8 - Memoire Virtuelle
PPTX
SdE 7 - Gestion de la Mémoire
PPTX
ALF 6 - Parser
PPTX
ALF 5 - Parser
PPTX
ALF 4 - Grammaires
PPTX
ALF 3 - Expressions régulières et Lexer
PPTX
ALF 1 - Automates finis
PPTX
DAPM 1 - Introduction
SdE2 - Pilot Tock
SdE2 - Systèmes embarquées
SdE2 - Planification, IPC
MDAD 6 - AIDL and Services
MDAD 5 - Threads
MDAD 4 - Lists, adapters and recycling
MDAD 3 - Basics of UI Applications
MDAD 2 - Introduction to the Android Framework
MDAD 1 - Hardware
MDAD 0 - Introduction
SdE 11 - Reseau
SdE 8 - Memoire Virtuelle
SdE 7 - Gestion de la Mémoire
ALF 6 - Parser
ALF 5 - Parser
ALF 4 - Grammaires
ALF 3 - Expressions régulières et Lexer
ALF 1 - Automates finis
DAPM 1 - Introduction

Dernier (20)

PDF
Architecture matérielle et logicielle d’un ordinateur
PPT
ESPRIT D’ENTREPRISE DE RENFORCER VF.ppt
PDF
🎓 Le Secret des Profs Captivants - 💡 4.1. Comment se manifeste l’appréhension...
PPT
transport matiere cour (stockage et transport).ppt
PDF
Enseigner la programmation en Python - Les avantages de l’approche UMC - 3
PDF
Algorithmique et programmation Algorithmique et programmation
PDF
PROGRAMMATION PAR CONTINUATION INFORMATIQUE
PDF
Bac 2025 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 🌍 HGGSP - Extrait 2
PPT
Cours GRH et Comm de Projet Eticca-20160827-151930603.ppt
DOCX
Une école qui dirige par des universitaires et professionnels
PDF
🎓 Enseigner la programmation 💻 en PYTHON - 1 - La méthode UMC - v2
PDF
pdfcoffee.com_suzuki-violin-school-volume-2-2-pdf-free.pdf
DOCX
ALMA - École de Management à Taille Humaine.docx
PDF
LEXIQUE COMPLETE EMOTIONS sur les émotions y les sentiments
PPT
FORMATION SIGNALISATION DE SECURITE ETIQUETAGE ET CODE COULEUR.ppt
PDF
4-bilan_FR___GÉNÉTIQUE_HUMAINE_bis[1].pdf
PPTX
_LA_METHODE_DES_COUTS_COMPLETS (1) (2).pptx
PDF
كتاب الاكاديمية للصف الاول الثانوى - تاريخ - 2026م.pdf
PPTX
présentation du TFE QdV des diabétiques ISFSC 2020 finale (2).pptx
PPTX
Niki de Saint-Phalle.pptx artiste plasticienne
Architecture matérielle et logicielle d’un ordinateur
ESPRIT D’ENTREPRISE DE RENFORCER VF.ppt
🎓 Le Secret des Profs Captivants - 💡 4.1. Comment se manifeste l’appréhension...
transport matiere cour (stockage et transport).ppt
Enseigner la programmation en Python - Les avantages de l’approche UMC - 3
Algorithmique et programmation Algorithmique et programmation
PROGRAMMATION PAR CONTINUATION INFORMATIQUE
Bac 2025 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - 🌍 HGGSP - Extrait 2
Cours GRH et Comm de Projet Eticca-20160827-151930603.ppt
Une école qui dirige par des universitaires et professionnels
🎓 Enseigner la programmation 💻 en PYTHON - 1 - La méthode UMC - v2
pdfcoffee.com_suzuki-violin-school-volume-2-2-pdf-free.pdf
ALMA - École de Management à Taille Humaine.docx
LEXIQUE COMPLETE EMOTIONS sur les émotions y les sentiments
FORMATION SIGNALISATION DE SECURITE ETIQUETAGE ET CODE COULEUR.ppt
4-bilan_FR___GÉNÉTIQUE_HUMAINE_bis[1].pdf
_LA_METHODE_DES_COUTS_COMPLETS (1) (2).pptx
كتاب الاكاديمية للصف الاول الثانوى - تاريخ - 2026م.pdf
présentation du TFE QdV des diabétiques ISFSC 2020 finale (2).pptx
Niki de Saint-Phalle.pptx artiste plasticienne

ALF 1 - Introduction

  • 2. L’equipe • Cours: – Alexandru Radovici (ACS) • TP: – Alexandru Radovici (ACS) – Diana Ghindaoanu (FILS) – Ioana Culic (ACS) • Devoir: – Diana Ghindaoanu (FILS) – Ioana Culic (ACS) • Ressources – Bogdan Nițulescu et l’equipe de CPL de ACS 2
  • 3. Les courses de programmation MTDL PL, SDA, POO AM, AO, ALF Ecrier de programmes Conception de programmes 3 Exécuter les programmes Sur une machine
  • 4. Bibliographie Keith Cooper, Linda Torczon, Engineering a Compiler Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools, 2nd Edition
  • 5. Ressources pour le cours ALF • Site web: http://ocw.cs.pub.ro/courses/alf/ • GitHub issues: https://github.com/upb- fils/alf/issues • Diapositives de cours • Catalogue et calendrier Google • Les machines virtuelles • vmchecker • La documentation 5
  • 6. Contenu Cours • 12 cours • diapositives • bibliographie – Très important de lire TP • 12 TP • Programmation en Javascript, Flex et Bison • C’est important de collabores avec votre collègues 6 Javascript Flex et Bison
  • 7. Devoirs Contenu • NodeJS • Langage Simple • Analyse syntactique • Analyse sémantique • Génération de code Développent • 8-20 heures pur une devoir – Test des devoirs avec vmchecker • Questions sur Github Issues Les devoirs sont individuelles 7
  • 8. Examen • Semestre – 5 devoirs (8p) – activité de TP (2p) • Session d’examen – épreuve écrite (5p) • Note – > 5 passer
  • 9. Hall of Fame Catalin Stancu 2017 Teodor Deaconu 2018 Catrina Bodean 2018 Student Student Student Student Student Student Claudia Dumitru 2017 Daniela Constantin 2019 Diana Ghindăoanu 2019
  • 10. Quelques mots sur ALF • Automates – Machines d'état – Machine de Turing – Expressions Régulier • Langages Formelles – Grammaires • Compilateurs – Arbre de syntaxe abstraite – Three Address Code – WebAssembly – Formé SSA – Graphe de flux du contrôle
  • 11. Vous utiliserez ces pour • Vérification des données • Extraction des information dans des ficher • Faire de langages de programmation • Utilisez le langage d’assemblage • Apprendre plus vite un langage de programmation • Un vue d’ensable sure un system avec des ordinateurs
  • 12. Connexions avec autres courses Connaissances requises • SdE1 • AO • LP • SDA Connaissances utiles pour • SdE2 • Infographie • IA 12
  • 13. Outils logiciels recommandés 13 Visual Studio Code NodeJS 12 LTS
  • 14. Alan Turing • Britannique • Mathématicien • Machine de Turing – Équivalent à des ordinateurs modernes
  • 15. Contenu • Informatique • Quelques mots sur ALF • Compilateurs • Sujets
  • 16. Bibliographie pour aujourd'hui • Engineering a Compiler – Chapitre 1 • Compilers: Principles Techniques and Tools – Chapitre 1 • 1.1 • 1.2
  • 17. Langages • Interprété – PHP • Compilé – C/C++ • Interprété et compilé (JIT) – Java, Python, NodeJS
  • 18. Compilateur Source Source d’assemblage Objet Exécutable Compilateur Assembleur Linker Plateforme indépendante (d’habitude) Dépend de l'architecture de l'UC X86, x64, ARM, ARM64, MIPS, … Dépend de l’UC & le SE Bibliothèques
  • 19. Les compilateurs se trouve • SDK de langages • Pilot de cartes vidéo • Android Runtime (ART) Android Source Compilateur Java Compilateur DEX Compilateur sur le dispositif
  • 22. Pièces de compilation Frontent Optimiseur Backend Source AST Source d’assemblage
  • 23. Frontend Source Lexer Parser Semantic AST Tokens Parse Tree Unexpected token … Expected … Object has no function …
  • 24. Lexer Source function s(a, b) { return a+b; } Tokens FUNCTION: function IDENTIFIER: s LP: ( IDENTIFIER: a COMMA: , IDENTIFIER: b RP: ) LB: { RETURN: return IDENTIFIER: a PLUS: + IDENTIFIER: b PV: ; RB: }
  • 25. Parser Tokens FUNCTION: function IDENTIFIER: s LP: ( IDENTIFIER: a COMMA: , IDENTIFIER: b RP: ) LB: { RETURN: return IDENTIFIER: a PLUS: + IDENTIFIER: b PV: ; RB: } Parse Tree function FUNCTION s LP parameters a COMMA parameters b RP LB statements return RETURN expression a PLUS b PV RB
  • 26. AST function s(a, b) { return a+b; } FUNCTION (name: s, parameters: [a, b]) RETURN PLUS VAR (name: a) VAR (name: b)
  • 28. Sujets • Automates finités • Expressions régulières • Grammaires indépendantes du contexte • Parser • AST • WebAssembly • Représentation de la structure des données • Génération de code
  • 29. Ressources pour le cours ALF • Site web: http://ocw.cs.pub.ro/courses/alf/ • GitHub issues: https://github.com/upb- fils/alf/issues • Diapositives de cours • Catalogue et calendrier Google • Les machines virtuelles • vmchecker • La documentation 29