Sémantika programovacích jazyků: Porovnání verzí

Smazaný obsah Přidaný obsah
m napřímení odkazu
m Styl
Řádek 1:
'''Sémantika programovacích jazyků''' je v [[Teorie programovacích jazyků|teorii programovacích jazyků]], je obor zabývající se důsledným matematickým popisem významu [[Programovací jazyk|programovacího jazyka]]. Zhodnocuje význam [[Syntax|syntakticky]] platných řetězců v daném programovacím jazyce, včetně jejich výpočtu. V případě ohodnocování syntakticky neplatných řetězců, není výpočet proveden. Sémantika popisuje procesy, které řídí počítač při vykonávání [[Počítačový program|programu]] v daném programovacím jazyce. Například tím, že popisuje vztah mezi vstupem a výstupem programu, nebo popisem jak program poběží na určité [[Počítačová platforma|platformě]], tedy vytvořením modelu výpočtu.
 
== Přehled ==
Obor formální sémantiky zahrnuje následující:
*Definici sémantických modelů
Řádek 8:
*Vztah mezi výpočtem a souvisejícími matematickými strukturami z oborů jako je [[logika]], [[teorie množin]], [[teorie modelů]], [[teorie kategorií]], atd.
 
Je úzce spjata s dalšími oblastmyoblastmi [[Informační technologie|IT]] jako jsou [[návrh a implementace programovacích jazyků]], [[teorie typů]], [[Překladač|překladačepřekladač]]e a [[Interpret (software)|interprety]], [[Formální verifikace|verifikace]] a [[kontrola modelů]].
 
== Přístupy ==
Ve formální sémantice existuje mnoho různých přístupů. Níže jsou tři nejpoužívanější:
*'''[[Denotační sémantika]]''', kde je každá fráze jazyka interpretována jako [[denotace]]. Tyto denotace často bývají matematickými objekty, ovšem není to podmínkou. V praxi je nezbytné aby byli denotace popsáný nějakou formou matematického zápisu, která může být formalizována jako denotační [[metajazyk]]. Například denotační sémantika funkčního jazyka často překládá jazyk do [[teorie domén]]. Popis denotační sémantikou může také sloužit pro překlady z programovacího jazyka do denotačního metajazyka a být použit jako základ pro návrh [[Překladač|překladače]].
*'''[[Operační sémantika]]''', kde je provádění jazyka popsáno přímo (nikoliv při překladu). Operační sémantika volně odpovídá [[Interpretovaný jazyk|iterpretaciinterpretaci]], kdy je použitý jazyk [[Interpret (software)|interpretu]] obecně matematicky formální. Operační sémantika může definována pomocí abstraktního stroje, který dává frázím význam pomocí přechodu stavů stroje. Alternativně může být operační sémantika definována pomocí syntaktických transformací na fráze samotného jazyka.
*'''[[Axiomatická sémantika]]''', kde je frázím přiřazován význam popisem [[Logika|logických]] [[Axiom|axiomů]], vztahujícím se k nim. Axiomatická sémantika nerozlišuje mezi logickými formulemi, které ji popisují. Jejich význam je přesně to co lze dokázat pomocí nějaké logiky. Příklad axiomatické sémantiky je [[Hoarova logika]].
 
Řádek 35:
* [[Glynn Winskel]]. ''[http://www.cl.cam.ac.uk/~gw104/dens.pdf Denotational Semantics]''. University of Cambridge.
 
== Reference ==
 
{{Překlad|en|Semantics (computer science)|540747164}}
 
[[Kategorie:Programovací jazyky]]