Nahoru exponovaná použití - Upwards exposed uses

Nahoru exponovaná použití nebo dosažitelná použití,[1] je koncept v teorie překladače který se vyskytuje v šíření kopie fáze kompilace.[2]

Použití

Během šíření kopie fáze kompilace programu, instance cíle jsou nahrazeny přiřazením jejich hodnot. Během tohoto procesu je nutné, aby překladač pochopil, ke kterým instancím cíle se přistupuje, aby mohlo dojít k vhodné substituci související s konceptem dosažení definice při dosahování analýzy.[3] To se provádí za účelem zjednodušení kódu před provedením: pokud je počet nahoru exponovaných použití přiřazení nulový, nepřispívá to ke konečnému výsledku kódu a lze jej bezpečně odebrat.[1] To je také užitečné pro zlepšení zabezpečení kódu během fází kompilace.[4]

Příklad

Zvažte následující pseudokód:

1 X = 12 y = z3 4 -li Nepravdivé:5     X = 06 jiný:7     X = y + 2

Lze s jistotou předpokládat, že k řádku 5 nikdy nedojde, což dokazuje nulový počet vzhůru exponovaných použití pro tento bod. Lze to tedy zjednodušit:

1 y = z2 X = z + 2

To vede ke konečnému výsledku, jehož sestavení je méně složité a jeho spuštění je efektivnější.[2] To také splňuje definici dosažení definice: V tomto kontextu byla analýza toku nahoru technikou použitou k prokázání potřeby dosažení definice. Další techniky umožňují složitější analýzu hlouběji propletených nebo složitějších problémů s řízením toku, jako jsou ty s různými formami smyček.[4]

Viz také

Reference

  1. ^ A b Harrold, Mary Jean (podzim 2009). "Základní analýza" (PDF). Georgia Tech - College of Computing. CS 6340: Analýza a testování softwaru. Atlanta, Georgia, USA: Gruzínský technologický institut. Archivováno (PDF) od originálu 2020-06-20. Citováno 2020-06-12.
  2. ^ A b Aho, Alfred Vaino; Lam, Monica Sin-Ling; Sethi, Ravi; Ullman, Jeffrey David (2006). Překladače: Zásady, techniky a nástroje (2. vyd.). Boston, Massachusetts, USA: Addison-Wesley. ISBN  0-321-48681-1. OCLC  70775643.
  3. ^ Kore, Aamod (2020). „Nahoru exponovaná použití“. Toronto, Ontario, Kanada: Department of Computer Science, University of Toronto. Archivováno od originálu 2020-06-20. Citováno 2020-06-12.
  4. ^ A b Bergeretti, Jean-Francois; Carré, Bernard A. (01.01.1985). „Analýza toku informací a datových toků programů while“. Transakce ACM v programovacích jazycích a systémech. Sdružení pro výpočetní techniku. 7 (1): 37–61. doi:10.1145/2363.2366. Archivováno od originálu 2020-06-20. Citováno 2020-06-20.