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