Rattrapage cours paradigmes + theorie

This commit is contained in:
xdrm-brackets 2017-01-27 14:20:37 +01:00
parent 080b45e2b7
commit dd3c48b811
14 changed files with 307 additions and 5 deletions

View File

@ -5,7 +5,7 @@ Cours de Licence3 Semestre 2
##### Liste des cours
- [Systèmes d'exploitation](../systemesdexploitation/compiled/README.html)
- [Conception de systèmes d'information](../conceptiondesystemesdinformation/compiled/README.html)
- Paradigmes de programmation
- [Paradigmes de programmation](../paradigmesdeprogrammation/compiled/README.html)
- [Théorie des langages et compilation](../theoriedeslangagesetcompilation/compiled/README.html)
- [Systèmes distribués](../systemesdistribues/compiled/README.html)
- Anglais

View File

@ -1,3 +1,3 @@
#!/bin/sh
pandoc -f markdown -t html5 --css ../../../dependencies/pandoc.css $1.md -o compiled/$1.html
pandoc -f markdown -t html5 --css ../dependencies/pandoc.css $1.md -o compiled/$1.html

View File

@ -17,7 +17,7 @@
<ul>
<li><a href="../systemesdexploitation/compiled/README.html">Systèmes d'exploitation</a></li>
<li><a href="../conceptiondesystemesdinformation/compiled/README.html">Conception de systèmes d'information</a></li>
<li>Paradigmes de programmation</li>
<li><a href="../paradigmesdeprogrammation/compiled/README.html">Paradigmes de programmation</a></li>
<li><a href="../theoriedeslangagesetcompilation/compiled/README.html">Théorie des langages et compilation</a></li>
<li><a href="../systemesdistribues/compiled/README.html">Systèmes distribués</a></li>
<li>Anglais</li>

View File

@ -0,0 +1,11 @@
Paradigmes de programmation
---------------------------
#### Cours
1. [Introduction](../cours/compiled/introduction.html)
#### TDs
#### TPs

View File

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h2 id="paradigmes-de-programmation">Paradigmes de programmation</h2>
<h4 id="cours">Cours</h4>
<ol type="1">
<li><a href="../cours/compiled/introduction.html">Introduction</a></li>
</ol>
<h4 id="tds">TDs</h4>
<h4 id="tps">TPs</h4>
</body>
</html>

View File

@ -0,0 +1,3 @@
#!/bin/sh
pandoc -f markdown -t html5 --css ../../../dependencies/pandoc.css $1.md -o compiled/$1.html

View File

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="paradigmes-de-programmation---introduction">Paradigmes de programmation - Introduction</h1>
<h3 id="langage-de-programmation">Langage de programmation</h3>
<ul>
<li>un modèle de calcul</li>
<li>une syntaxe et une sémantique</li>
<li>des considérations pragmatiques qui forment le langage</li>
</ul>
<h3 id="exemple-introductif-suite">Exemple introductif (suite)</h3>
<ul>
<li>La notation mathématique (syntaxe) fournit le langage de programmation.</li>
<li>L'arithmétique fournit le modèle du calcul pour effectuer le calcul</li>
<li>Le passage de la syntaxe au modèle de calcul fournit la signification (sémantique) pour le programme.</li>
<li>La notation utilisée dans cet exemple est basée sur les considérations très pragmatiques de facilité d'utilisation et de compréhension</li>
</ul>
<p><strong>CCL</strong>: Cet exemple sert à illustrer plusieurs idées principales dans l'étude des langages de programmation qui sont récapitulées dans la définition suivante.</p>
<h3 id="définitions">Définitions</h3>
<p><strong>Modèle de calcul</strong></p>
<blockquote>
<p>Une collection de valeurs et d'exécutions</p>
</blockquote>
<p><strong>Calcul</strong></p>
<blockquote>
<p>L'application d'une séquence d'opérations à une valeur pour rapporter une autre valeur.</p>
</blockquote>
<p><strong>Programme</strong></p>
<blockquote>
<p>Une spécification d'un calcul.</p>
</blockquote>
<p><strong>Langage de programmation</strong></p>
<blockquote>
<p>Une notation pour écrire des programmes.</p>
</blockquote>
<p><strong>Syntaxe d'un langage de programmation</strong></p>
<blockquote>
<p>Se rapporte à la structure ou à la forme des programmes.</p>
</blockquote>
<p><strong>émantique d'un langage de programmation</strong></p>
<blockquote>
<p>Décrit la relation entre un programme et le modèle de calcul.</p>
</blockquote>
<p><strong>Pragmatique d'un langage de programmation</strong></p>
<blockquote>
<p>Décrit le degré de succès avec lequel le langage de programmation est conforme à ses buts d'une part dans sa fidélité au modèle de calcul et d'autre part dans son utilité pour les programmateurs humains.</p>
</blockquote>
<h3 id="modèles-de-calcul">Modèles de calcul</h3>
<ul>
<li><p>Trois modèles de calcul <strong>de base</strong>:</p>
<ul>
<li>fonctionnel</li>
<li>logique</li>
<li>impératif</li>
</ul></li>
<li><p>En plus de l'ensemble des valeurs et d'opérations, chacun a un ensemble d'opérations pour effectuer le calcul :</p>
<ol type="1">
<li>fonctionnel : application de fonctions</li>
<li>logique : inférence logique (modus ponens)</li>
<li>impératif : ordre de changement d'états</li>
</ol></li>
</ul>
<h4 id="le-modèle-fonctionnel">Le Modèle Fonctionnel</h4>
<h4 id="le-modèle-logique">Le Modèle Logique</h4>
<h4 id="le-modèle-impératif">Le Modèle Impératif</h4>
</body>
</html>

View File

@ -0,0 +1,72 @@
Paradigmes de programmation - Introduction
==========================================
### Langage de programmation
* un modèle de calcul
* une syntaxe et une sémantique
* des considérations pragmatiques qui forment le langage
### Exemple introductif (suite)
* La notation mathématique (syntaxe) fournit le langage de programmation.
* L'arithmétique fournit le modèle du calcul pour effectuer le calcul
* Le passage de la syntaxe au modèle de calcul fournit la signification (sémantique) pour le programme.
* La notation utilisée dans cet exemple est basée sur les considérations très pragmatiques de facilité d'utilisation et de compréhension
**CCL**: Cet exemple sert à illustrer plusieurs idées principales dans l'étude des langages de programmation qui sont récapitulées dans la définition suivante.
### Définitions
**Modèle de calcul**
> Une collection de valeurs et d'exécutions
**Calcul**
> L'application d'une séquence d'opérations à une valeur pour rapporter une autre valeur.
**Programme**
> Une spécification d'un calcul.
**Langage de programmation**
> Une notation pour écrire des programmes.
**Syntaxe d'un langage de programmation**
> Se rapporte à la structure ou à la forme des programmes.
**émantique d'un langage de programmation**
> Décrit la relation entre un programme et le modèle de calcul.
**Pragmatique d'un langage de programmation**
> Décrit le degré de succès avec lequel le langage de programmation est conforme à ses buts d'une part dans sa fidélité au modèle de calcul et d'autre part dans son utilité pour les programmateurs humains.
### Modèles de calcul
* Trois modèles de calcul **de base**:
* fonctionnel
* logique
* impératif
* En plus de l'ensemble des valeurs et d'opérations, chacun a un ensemble d'opérations pour effectuer le calcul :
1. fonctionnel : application de fonctions
2. logique : inférence logique (modus ponens)
3. impératif : ordre de changement d'états
#### Le Modèle Fonctionnel
#### Le Modèle Logique
#### Le Modèle Impératif

View File

@ -4,7 +4,8 @@ Théorie des langages de programmation & compilation
#### Cours
1. [Introduction](../cours/compiled/introduction.html)
2. [Chapitre 1](../cours/compiled/1.html)
2. [Chapitre 1 - Langages](../cours/compiled/1.html)
3. [Chapitre 2 - Grammaire](../cours/compiled/2.html)
#### TDs

View File

@ -16,7 +16,8 @@
<h4 id="cours">Cours</h4>
<ol type="1">
<li><a href="../cours/compiled/introduction.html">Introduction</a></li>
<li><a href="../cours/compiled/1.html">Chapitre 1</a></li>
<li><a href="../cours/compiled/1.html">Chapitre 1 - Langages</a></li>
<li><a href="../cours/compiled/2.html">Chapitre 2 - Grammaire</a></li>
</ol>
<h4 id="tds">TDs</h4>
<h4 id="tps">TPs</h4>

View File

@ -119,3 +119,41 @@ Principe pour décrire les langages par une **grammaire** (procédé formel de c
### Opérations sur les langages
Soit $L$ et $M$, deux langages, et l'alphabet $\Sigma = {a, b}$.
- Union: $L\cup M = \{x\in \Sigma^* / x\in L\ ou\ x\in M\}$
- Intersection: $L\cap M = \{x\in \Sigma^* / x\in L\ et\ x\in M\}$
- Différence: $L\setminus M = \{x\in \Sigma^* / x\in L\ et\ x\notin M\}$
- Complémentaire: $A\subset \Sigma^* = \neg A = \{x\in \Sigma^* / x\notin A\}$
- Concaténation/Produit: $L\otimes M = \{x.y\in \Sigma^* / x\in L\ et\ y\in M\}$
**Exercice:**
- $L\otimes M = \{b, ba, ab, aba, abb, abba\}$
- $M\otimes L = \{b, ba, ba, bab, baa, baab\}$
##### Distribution:
- $A.(B\cup C) = (A.B) \cup (A.C)$
- **/!\\** pas de distributivité avec $\cap$
##### Structure monoide:
> Ensemble muni d'une opération interne associative et d'un élément neutre.
>
> **exemple**: $\Sigma$ muni de concaténation
>
> $L^+$ est la _fermeture positive_ de $L$ = $L^*-\{\epsilon\}$
##### Classification des langages:
- Type 0 : Langage récursivement **énumérable**
- Type 1 : Langage récursivement **contextuel**
- Type 2 : Langage récursivement **algébrique** (context-free)
- Type 3 : Langage récursivement **relationnel** (régulier
> $Type\ 3 \subset\ Type\ 2\ \subset\ Type\ 1\ \subset\ Type 0$

View File

@ -0,0 +1,13 @@
Chapitre II - Grammaire
=======================
### Définitions
**Grammaire**
> Ensemble de règles permettant de générer des mots du langage sous forme de réécriture (on remplace une séquence par une autre).
**Mots générés**
> Mots obtenus à partir d'un symbole spécial appelé **symbole de départ** ou **axiome**.

View File

@ -127,5 +127,41 @@
</ul>
</blockquote>
<h3 id="opérations-sur-les-langages">Opérations sur les langages</h3>
<p>Soit <span class="math inline"><em>L</em></span> et <span class="math inline"><em>M</em></span>, deux langages, et l'alphabet <span class="math inline"><em>Σ</em>=<em>a</em>,<em>b</em></span>.</p>
<ul>
<li>Union: <span class="math inline"><em>L</em><em>M</em>={<em>x</em> ∈ <em>Σ</em><sup>*</sup>/<em>x</em> ∈ <em>L</em> <em>o</em><em>u</em> <em>x</em> ∈ <em>M</em>}</span></li>
<li>Intersection: <span class="math inline"><em>L</em> ∩ <em>M</em>={<em>x</em> ∈ <em>Σ</em><sup>*</sup>/<em>x</em> ∈ <em>L</em> <em>e</em><em>t</em> <em>x</em> ∈ <em>M</em>}</span></li>
<li>Différence: <span class="math inline"><em>L</em>\<em>M</em>={<em>x</em> ∈ <em>Σ</em><sup>*</sup>/<em>x</em> ∈ <em>L</em> <em>e</em><em>t</em> <em>x</em> ∉ <em>M</em>}</span></li>
<li>Complémentaire: <span class="math inline"><em>A</em> ⊂ <em>Σ</em><sup>*</sup>= ¬<em>A</em>={<em>x</em> ∈ <em>Σ</em><sup>*</sup>/<em>x</em> ∉ <em>A</em>}</span></li>
<li>Concaténation/Produit: <span class="math inline"><em>L</em> ⊗ <em>M</em>={<em>x</em>.<em>y</em> ∈ <em>Σ</em><sup>*</sup>/<em>x</em> ∈ <em>L</em> <em>e</em><em>t</em> <em>y</em> ∈ <em>M</em>}</span></li>
</ul>
<p><strong>Exercice:</strong></p>
<ul>
<li><span class="math inline"><em>L</em> ⊗ <em>M</em>={<em>b</em>,<em>b</em><em>a</em>,<em>a</em><em>b</em>,<em>a</em><em>b</em><em>a</em>,<em>a</em><em>b</em><em>b</em>,<em>a</em><em>b</em><em>b</em><em>a</em>}</span></li>
<li><span class="math inline"><em>M</em> ⊗ <em>L</em>={<em>b</em>,<em>b</em><em>a</em>,<em>b</em><em>a</em>,<em>b</em><em>a</em><em>b</em>,<em>b</em><em>a</em><em>a</em>,<em>b</em><em>a</em><em>a</em><em>b</em>}</span></li>
</ul>
<h5 id="distribution">Distribution:</h5>
<ul>
<li><span class="math inline"><em>A</em>.(<em>B</em><em>C</em>)=(<em>A</em>.<em>B</em>)(<em>A</em>.<em>C</em>)</span></li>
<li><strong>/!\</strong> pas de distributivité avec <span class="math inline"></span></li>
</ul>
<h5 id="structure-monoide">Structure monoide:</h5>
<blockquote>
<p>Ensemble muni d'une opération interne associative et d'un élément neutre.</p>
<p><strong>exemple</strong>: <span class="math inline"><em>Σ</em></span> muni de concaténation</p>
</blockquote>
<blockquote>
<p><span class="math inline"><em>L</em><sup>+</sup></span> est la <em>fermeture positive</em> de <span class="math inline"><em>L</em></span> = <span class="math inline"><em>L</em><sup>*</sup>{<em>ϵ</em>}</span></p>
</blockquote>
<h5 id="classification-des-langages">Classification des langages:</h5>
<ul>
<li>Type 0 : Langage récursivement <strong>énumérable</strong></li>
<li>Type 1 : Langage récursivement <strong>contextuel</strong></li>
<li>Type 2 : Langage récursivement <strong>algébrique</strong> (context-free)</li>
<li>Type 3 : Langage récursivement <strong>relationnel</strong> (régulier</li>
</ul>
<blockquote>
<p><span class="math inline"><em>T</em><em>y</em><em>p</em><em>e</em> 3 <em>T</em><em>y</em><em>p</em><em>e</em> 2  <em>T</em><em>y</em><em>p</em><em>e</em> 1  <em>T</em><em>y</em><em>p</em><em>e</em>0</span></p>
</blockquote>
</body>
</html>

View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../../../dependencies/pandoc.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="chapitre-ii---grammaire">Chapitre II - Grammaire</h1>
<h3 id="définitions">Définitions</h3>
<p><strong>Grammaire</strong></p>
<blockquote>
<p>Ensemble de règles permettant de générer des mots du langage sous forme de réécriture (on remplace une séquence par une autre).</p>
</blockquote>
<p><strong>Mots générés</strong></p>
<blockquote>
<p>Mots obtenus à partir d'un symbole spécial appelé <strong>symbole de départ</strong> ou <strong>axiome</strong>.</p>
</blockquote>
</body>
</html>