Ladda ner presentationen
Presentation laddar. Vänta.
1
Programspråkssemantik Hur programspråk ska tolkas
2
Programspråkssemantik Läran om språklig betydelse Tolkning av uttryck Hur datatyper och uttryck kan manipuleras och hur de ska hanteras
3
Statisk semantik Tillstånd vid tidpunkt för kompilering Beskriver de regler som är svåra för syntaxregler att beskriva Exempel: Variabeldeklaration innan referering Definierar ofta olika typer av objekt Hur ska dessa hanteras? Hur interagerar dessa?
4
Metoder för semantikbeskrivning Operationell semantik Axiomatisk semantik Denotationssemantik
5
Operationell semanik Översätt till lättförståeligt språk Olika abstraktionsnivåer Naturlig: Beskriver programmets slutresultat Strukturerad: Beskriver exakt mening med ett uttryck
6
Axiomatisk semantik Utvecklad för att bevisa korrekthet Grundad i predikatlogiken Logiska uttryck innan och efter alla uttryck som beskriver begränsningar Generellt: {P} S {Q} Exempel: {x > 0} sum = 2 * x + 1 {sum > 1}
7
Axiomatisk semantik Inferering: Generellt:S1, S2,...,Sn S Exempel: {x>3} x=x-3 {x>0}, (x>5)=>(x>3),(x>0)=>(x>0) {x>5} x=x-3 {x>0} Korrekthet: Räkna ut precondition utifrån postcondition från programmets slut
8
Denotationssemantik Matematiska objekt kallade denotationer Delarnas innebörd ger objektets innebörd Rekursiva funktioner Använder parse trees
9
Denotationssemantik Exempel: → ’0’ | ’1’ | ’0’ | ’1’ Mbin(’0’) = 0 Mbin(’1’) = 1 Mbin( ’0’) = 2 * Mbin( ) Mbin( ’1’) = 2 * Mbin( ) + 1
10
Skillnad mellan statisk och dynamisk semantik Statisk Givet ögonblick Vid kompilering Exempel Typkontroll
11
Skillnad mellan statisk och dynamisk semantik (2) Dynamisk Hur förändring sker Vid exekvering Exempel Division med noll Indexeringkontroll
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.