2. L’equipe
• Cours:
– Alexandru Radovici (ACS)
• TP:
– Alexandru Radovici (ACS)
– Teodor Deaconu (FILS)
• Devoir:
– Teodor Deaconu (FILS)
• Ressources
– Bogdan Nițulescu et l’equipe de CPL de ACS
2
3. Les courses de programmation
MTDL
PL, SDA, POO
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 Student Student
Claudia Dumitru
2017
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
• FI
• AO
• LP
• SDA
Connaissances utiles pour
• SDE
• 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