INF 424 P : Logique et langages


Retour
Imprimer la fiche programme
Code analytique: EDPINFMA2
Responsable  : Yannis HARALAMBOUS
Co-responsable  : Eric COUSIN
   
Programmé en UV2 MAJ INF, UV2MAJ INFMS

Présentation :

La logique et la théorie des langages font partie des fondements de l'informatique. Dans ce module nous allons aborder certaines notions de ces théories.

Un langage est un ensemble de «mots» définis sur un «alphabet». Les expressions régulières (que l'on retrouve dans tous les langages de programmation modernes) sont un moyen de définir une classe particulière de langages, appelés langages réguliers. Les automates en donnent une description analytique (un mot appartient à un langage s'il peut être obtenu par une suite de transitions entre états de l'automate) et les grammaires formelles une description générative (un mot appartient à un langage s'il peut être obtenu par une suite de productions à partir d'un axiome de départ).

La logique étudie les principes du raisonnement. Dans ce cours, nous allons nous restreindre à deux types de logique : la logique propositionnelle et la logique des prédicats.

Une proposition est une phrase qui peut être vraie ou fausse. En logique propositionnelle on étudie les règles qui permettent de prouver la vérité d'une proposition à partir de celles d'autres propositions.

La logique des prédicats ou logique de premier ordre est une formalisation du langage des mathématiques. Elle utilise des fonctions, des variables, des prédicats, des connecteurs et des quantificateurs, groupés en formules. Il s'agit de prouver des formules mais aussi d'étudier les liens entre des structures mathématiques et informatiques (appelées des modèles) et des ensembles de formules logiques (appelés des théories).

Enfin, la logique du premier ordre permet de définir la sémantique des langages de programmation et de vérifier leur correction.

Objectifs pédagogiques :


  • Comprendre les notions d'automate, de langage formel, d'expression régulière, de grammaire formelle
  • Utiliser les expressions régulières dans plusieurs contextes
  • Démontrer des propositions logiques
  • Démontrer des formules de logique de premier ordre
  • Insérer des assertions dans un programme et les vérifier

Volume horaire : 18h


Contenu détaillé :

C/TP-LF1 (3 h) : Langages formels, langages réguliers, expressions régulières

C/TP-LF2 (3 h) : Automates d'états finis

C/PC-LF3 (3h) : Grammaires formelles

C/PC-LOG1 (3h) : Logique propositionnelle

C/PC-LOG2 (3h) : Logique de premier ordre

C/PC-LOG3 (3h) : Sémantique et vérification des langages de programmation

Travaux personnels encadrés :

TP-LF1 (1h30) : Expressions régulières sous Python

TP-LF2 (1h30) : Automates d'états finis (travail à rendre)

PC-LF3 (1h30) : Expressions régulières, automates, grammaires

PC-LOG1 (1h30) : Exercices en logique propositionnelle

PC-LOG2 (1h30) : Exercices en logique du premier ordre

PC-LOG3 (1h30) : Exercices de vérification de petits programmes


Année 2017/2018
Dernière mise à jour le 25-APR-17
Validation par le responsable de programme le


IMT Atlantique
Campus de Brest
Technopôle Brest-Iroise
CS 83818
29238 Brest Cedex 3
France

Tél  +33 (0)2 29 00 11 11
Fax +33 (0)2 29 00 10 00