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
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
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
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
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