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

Smazaný obsah Přidaný obsah
Bez shrnutí editace
Formulace, styl
Řádek 2:
'''Sémantika programovacích jazyků''' je v [[Teorie programovacích jazyků|teorii programovacích jazyků]] 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.
 
'''== Statická sémantika''' ==
 
Statická sémantika je řešena při překladu programu, zde jsou definovány a deklarovány jednotlivá pravidla a prvky programovacího jazyka. V těchto prvcích je zahrnuta jazyková konstrukce, její typy parametrů, význam příkazů a další prvky. Statická sémantika dále kontroluje statické typy a práci s tabulkou definovaných programových symbolů.
 
Řádek 14 ⟶ 13:
* Mezi neznámější zástupce staticky typovaných jazyků patří Java, Ada a jazyk C.
 
'''== Dynamická sémantika''' ==
 
Dynamická sémantika je řešena přímo za běhu programu. Dynamicky typované jazyky jsou významné v jednotlivých jazykových konstrukcí. Jaký úkon se má provést, když je v programu napsán daný příkaz nebo priorita operátorů. Dynamická sémantika je obzvlášť náročná u programovacích jazyků s rekurzivním voláním podprogramů, proto je nutné vést evidenci o volání téhož podprogramu. Z kterého se vytváří
'''Dynamická sémantika'''
 
Dynamická sémantika je řešena přímo za běhu programu. Dynamicky typované jazyky jsou významné v jednotlivých jazykových konstrukcí. Jaký úkon se má provést, když je v programu napsán daný příkaz nebo
priorita operátorů. Dynamická sémantika je obzvlášť náročná u programovacích jazyků s rekurzivním voláním podprogramů, proto je nutné vést evidenci o volání téhož podprogramu. Z kterého se vytváří
aktivační záznamy pro jednotlivá volání podprogramů a jejich následné ukládání do zásobníku.
 
Řádek 28 ⟶ 24:
* Mezi neznámější zástupce dynamicky typovaných jazyků patří Python, Smalltalk, Prolog.
 
'''=== Silné a slabé typové kontroly''' ===
 
'''Silné a slabé typové kontroly'''
 
* Většina dynamický typovaných jazyků vykonává silné typové kontroly za běhu programu.
* Staticky silně typované Java a Ada.
* K staticky slabě typovaným jazykům patří například jazyk C.<ref>
 
 
 
== Přehled ==
Obor formální sémantiky zahrnuje následující:
* Definici sémantických modelů
* Vztahy mezi odlišnými sémantickými modely
* Vztahy mezi odlišnými přístupy k významu
* 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 oblastmi [[Informační technologie|IT]] jako jsou [[návrh a implementace programovacích jazyků]], [[teorie typů]], [[překladač]]e a [[Interpret (software)|interprety]], [[Formální verifikace|verifikace]] a [[kontrola modelů]].
Řádek 71 ⟶ 63:
; Skripta
* [[Glynn Winskel]]. ''[http://www.cl.cam.ac.uk/~gw104/dens.pdf Denotational Semantics]''. University of Cambridge.
* {{Citace monografie
| příjmení = Vavrečková
| jméno = Š
Řádek 80 ⟶ 72:
| isbn = 978-80-7248-493-5
}}
</ref>* <ref>{{Citace elektronické monografie
| příjmení = Vavrečková
| jméno = Š
Řádek 86 ⟶ 78:
| datum_vydání = 2012
| url = http://axpsu.fpf.slu.cz/~vav10ui/obsahy/prekl/prezentace/prekl_09a_sem.pdf
}}</ref>
 
<references/>
== Reference ==
{{Překlad|en|Semantics (computer science)|540747164}}
<references />
 
[[Kategorie:Programovací jazyky]]