CM3 Flashcards

1
Q

Typage dynamique

A

pendant l’exécution
langages: Lisp, PHP, Python, JavaScript

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Typage statique

A

au moment de la compilation après le lexing et l’analyse syntaxique
langages: C, Java, OCaml

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hybride

A

permettre les annotations de typage sur les langages typés dynamiquement
Langages: Python avec Pyright et JS avec TypeScript

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Objectif 1 du typage (décidable)

A

Le système de typage doit être décidable:
* doit être déterministe
* doit pouvoir inférer le type des expressions de manière prévisible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

qu’est ce que le système de typage doit être capable de détecter ?

A

détecter et signaler les incompatibilités de types dès que possible, idéalement lors de la compilation ou avant l’exécution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

le système de typage peut être conçu pour détecter quoi ?

A

différents types d’erreurs, en fonction des besoins spécifiques du langage de programmation et du contexte d’utilisation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

qu’est ce qu’il est important que le système de typage devient?

A

Il est important que le système de typage soit suffisamment flexible pour permettre l’écriture de programmes expressifs tout en garantissant la sureté et la cohérence de typage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

les règles de typage informelle pour Mini-While

A
  1. les expressions peuvent être de type int ou bool
  2. les conditions des instructions if et while doivent être de type booléen
  3. + prend des opérandes de type int et retourne des résultats de type int
  4. < prend des opérandes de type int et retourne un résultat de type bool
  5. = fonctionne pour les variables de type int et bool
  6. les constantes entières sont de type int
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment règles les problèmes des règles de typage informelle de Mini-While?

A

on utilise la spécification formelle
* qui définit le comportement et le typage du langage à l’aide de règles précises et sans ambiguïté, ce qui facilite l’écriture de code et de tests , ainsi que la vérification de la conformité du code aux spécifications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Expressions hybrides

A

impliquent des opérations entre des valeurs de types différents, comme additionner un flottant et un int

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Comment OCaml gère les expressions hybrides?

A

Il les rejette car OCaml est statiquement typé avec un système de types strict et dit que les opérations doivent se faire entre des valeurs de même type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Comment d’autres langages comme C, Python, Java gèrent les expressions hybrides?

A
  • ils vont faire de la conversion implicite
  • du coercion type
  • l’AST peut être modifier pour insérer les conversions de type nécessaires
How well did you know this?
1
Not at all
2
3
4
5
Perfectly