From 12698234490e731d52f213c988c9c735402423c5 Mon Sep 17 00:00:00 2001
From: Yassine Ettayeb <yassine.ettayeb@student-cs.fr>
Date: Fri, 28 Mar 2025 08:39:08 +0100
Subject: [PATCH] final commit

---
 Pystan/config/Compte rendu TP 2 AnaStat.docx | Bin 0 -> 16052 bytes
 Pystan/config/iteration.py                   |  14 +++++++-------
 Pystan/config/opsem.py                       |   6 ++----
 3 files changed, 9 insertions(+), 11 deletions(-)
 create mode 100644 Pystan/config/Compte rendu TP 2 AnaStat.docx

diff --git a/Pystan/config/Compte rendu TP 2 AnaStat.docx b/Pystan/config/Compte rendu TP 2 AnaStat.docx
new file mode 100644
index 0000000000000000000000000000000000000000..db98fa0f378c683bf4ded86a1a6973d2aee197ec
GIT binary patch
literal 16052
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

literal 0
HcmV?d00001

diff --git a/Pystan/config/iteration.py b/Pystan/config/iteration.py
index 2ca3afb..100ea67 100644
--- a/Pystan/config/iteration.py
+++ b/Pystan/config/iteration.py
@@ -86,7 +86,7 @@ def fixpoint_iteration[T](transfer: Transfer[T], cfg: Cfg) -> dict[Node,T]:
     output maps each node to the computed state
     """
 
-    # Étape 1 : Initialisation
+    # initialisation
     mapping: dict[Node, T] = {}
     for node in cfg.g.nodes:
         if node == cfg.init_node:
@@ -94,17 +94,17 @@ def fixpoint_iteration[T](transfer: Transfer[T], cfg: Cfg) -> dict[Node,T]:
         else:
             mapping[node] = transfer.bottom()
 
-    # Étape 2 : Initialisation de la worklist avec les successeurs du nœud initial
+    # initialisation de la worklist avec les successeurs du nœud initial
     worklist: list[tuple[Node, Node, Label]] = []
     for (dst, label) in cfg.init_node.succs:
         worklist.append((cfg.init_node, dst, label))
 
-    # Étape 3 : Itération principale
+    # itération principale
     while worklist:
         src, dst, label = worklist.pop(0)
         src_state = mapping[src]
 
-        # Appliquer la bonne fonction de transfert selon le label
+        # applique la fonction de transfert selon le label
         match label:
             case LSkip():
                 new_state = transfer.tr_skip(src_state)
@@ -117,13 +117,13 @@ def fixpoint_iteration[T](transfer: Transfer[T], cfg: Cfg) -> dict[Node,T]:
             case _:
                 continue  # ou raise NotImplementedError
 
-        # Joindre avec l'ancien état
+        # joindre avc l'ancien état
         joined_state = transfer.join(mapping[dst], new_state)
 
-        # Si le nouvel état apporte de l'information, on met à jour
+        # si  nouvel état apporte de l'information, on met à jour
         if not transfer.included(joined_state, mapping[dst]):
             mapping[dst] = joined_state
-            # Et on ajoute les successeurs à la worklist
+            # + on ajoute les successeurs à la worklist
             for (succ, lab) in dst.succs:
                 worklist.append((dst, succ, lab))
 
diff --git a/Pystan/config/opsem.py b/Pystan/config/opsem.py
index 8cc3809..d8b6621 100644
--- a/Pystan/config/opsem.py
+++ b/Pystan/config/opsem.py
@@ -34,18 +34,16 @@ def eval_aexp(env: dict[str,int], exp: ArithExpr) -> int | None:
             if left_val is None or right_val is None:
                 return None
             
-            # Match on the binary operator using the available operations
             if bop == Bop.ADD:
                 return left_val + right_val
             elif bop == Bop.MUL:
                 return left_val * right_val
-            # Check for other potential operators in Bop
-            # Using string representation as fallback
+            # check for other potential operators in Bop
             elif str(bop) == "Bop.SUB" or str(bop) == "-":
                 return left_val - right_val
             elif str(bop) == "Bop.DIV" or str(bop) == "/":
                 if right_val == 0:
-                    return None  # Division by zero
+                    return None  # div by zero
                 return left_val // right_val
             else:
                 return None
-- 
GitLab