SlideShare une entreprise Scribd logo
1  sur  30
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

Tendances

SdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de FichiersSdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de FichiersAlexandru Radovici
 
Systemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire VirtuelleSystemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire VirtuelleAlexandru Radovici
 
Systemes d'explotation: Systèmes embarquées
Systemes d'explotation: Systèmes embarquéesSystemes d'explotation: Systèmes embarquées
Systemes d'explotation: Systèmes embarquéesAlexandru Radovici
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireAlexandru Radovici
 
SdE 8 - Synchronization de execution
SdE 8 - Synchronization de executionSdE 8 - Synchronization de execution
SdE 8 - Synchronization de executionAlexandru Radovici
 
Systemes d'explotation: Synchronization de execution
Systemes d'explotation: Synchronization de executionSystemes d'explotation: Synchronization de execution
Systemes d'explotation: Synchronization de executionAlexandru Radovici
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionAlexandru Radovici
 

Tendances (20)

SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
ALF - Introduction (2018)
ALF - Introduction (2018)ALF - Introduction (2018)
ALF - Introduction (2018)
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
 
SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 
SdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de FichiersSdE 11: Implémentation de Système de Fichiers
SdE 11: Implémentation de Système de Fichiers
 
Systemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire VirtuelleSystemes d'explotation: Mémoire Virtuelle
Systemes d'explotation: Mémoire Virtuelle
 
SdE 4 - Processus
SdE 4 - ProcessusSdE 4 - Processus
SdE 4 - Processus
 
SdE 6 - Gestion de la memoire
SdE 6 - Gestion de la memoireSdE 6 - Gestion de la memoire
SdE 6 - Gestion de la memoire
 
Systemes d'explotation: Systèmes embarquées
Systemes d'explotation: Systèmes embarquéesSystemes d'explotation: Systèmes embarquées
Systemes d'explotation: Systèmes embarquées
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoire
 
SdE 8 - Synchronization de execution
SdE 8 - Synchronization de executionSdE 8 - Synchronization de execution
SdE 8 - Synchronization de execution
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
Systemes d'explotation: Synchronization de execution
Systemes d'explotation: Synchronization de executionSystemes d'explotation: Synchronization de execution
Systemes d'explotation: Synchronization de execution
 
SdE 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
 
SdE 9 - Threads
SdE 9 - ThreadsSdE 9 - Threads
SdE 9 - Threads
 
SdE 2 - System de fichiers
SdE 2 - System de fichiersSdE 2 - System de fichiers
SdE 2 - System de fichiers
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de execution
 

Similaire à ALF 1 - Introduction

Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"ABES
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...
2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...
2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...PMI Lévis-Québec
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & toolsSlim Soussi
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Cyril Reinhard
 
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft AzureTIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft AzureThe Incredible Automation Day
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchRobert Viseur
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webAcquia
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousseOpen Source Experience
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgRomain Boman
 
Introduction à l'Open Hardware
Introduction à l'Open HardwareIntroduction à l'Open Hardware
Introduction à l'Open HardwareRobert Viseur
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Hidora
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011OSInet
 

Similaire à ALF 1 - Introduction (20)

Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
AntoineLambertCV
AntoineLambertCVAntoineLambertCV
AntoineLambertCV
 
Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3
 
2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...
2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...
2009-10-13 Louis Martin Génie logiciel - Développement agile en gestion de pr...
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & tools
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft AzureTIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend Search
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
 
Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousse
 
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULgDévelopper des codes de simulation numérique avec une équipe "non geek" à l'ULg
Développer des codes de simulation numérique avec une équipe "non geek" à l'ULg
 
Introduction à l'Open Hardware
Introduction à l'Open HardwareIntroduction à l'Open Hardware
Introduction à l'Open Hardware
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
 

Plus de Alexandru Radovici (19)

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
MDAD 6 - AIDL and Services
MDAD 6 - AIDL and ServicesMDAD 6 - AIDL and Services
MDAD 6 - AIDL and Services
 
MDAD 5 - Threads
MDAD 5 - ThreadsMDAD 5 - Threads
MDAD 5 - Threads
 
MDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recyclingMDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recycling
 
MDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI ApplicationsMDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI Applications
 
MDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android FrameworkMDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android Framework
 
MDAD 1 - Hardware
MDAD 1 - HardwareMDAD 1 - Hardware
MDAD 1 - Hardware
 
MDAD 0 - Introduction
MDAD 0 - IntroductionMDAD 0 - Introduction
MDAD 0 - Introduction
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
SdE 8 - Memoire Virtuelle
SdE 8 - Memoire VirtuelleSdE 8 - Memoire Virtuelle
SdE 8 - Memoire Virtuelle
 
SdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la MémoireSdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la Mémoire
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 
ALF 5 - Parser
ALF 5 - ParserALF 5 - Parser
ALF 5 - Parser
 
ALF 4 - Grammaires
ALF 4 - GrammairesALF 4 - Grammaires
ALF 4 - Grammaires
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
ALF 1 - Automates finis
ALF 1 - Automates finis ALF 1 - Automates finis
ALF 1 - Automates finis
 
DAPM 1 - Introduction
DAPM 1 - IntroductionDAPM 1 - Introduction
DAPM 1 - Introduction
 

Dernier

A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 

Dernier (15)

A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 

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