Τυπική σημασιολογία των γλωσσών προγραμματισμού: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ Ρομπότ: Προσθήκη: cv:Семантика (программăлани); διακοσμητικές αλλαγές
Γραμμή 6:
 
* '''[[Δηλωτική σημασιολογία]]''' ('''Denotational semantics'''), στην οποία κάθε φράση της γλώσσας μεταφράζεται σε μια ''δήλωση'' (''denotation''), δηλ. σε μια φράση σε κάποια άλλη γλώσσα. Η δηλωτική σημασιολογία αντιστοιχεί γενικά στη [[μεταγλωττιστής|μεταγλώττιση]], αν και η τελική γλώσσα είναι συνήθως κάποιος μαθηματικός φορμαλισμός και όχι άλλη μια γλώσσα προγραμματισμού υπολογιστών. Για παράδειγμα, η δηλωτική σημασιολογία των [[συναρτησιακός προγραμματισμός|συναρτησιακών γλωσσών]] συνήθως μεταφράζει τη γλώσσα στη [[θεωρία πεδίων]] (domain theory).
* '''[[Λειτουργική σημασιολογία]]''' ('''Operational semantics'''), στην οποία η εκτέλεση της γλώσσας περιγράφεται άμεσα (και όχι μέσω μετάφρασης). Η λειτουργική σημασιολογία γενικά αντιστοιχεί στη [[Διερμηνέας (υπολογιστές)|διερμηνεία]], αν και πάλι η "γλώσσα υλοποίησης" του διερμηνέα είναι συνήθως κάποιος μαθηματικός φορμαλισμός. Η λειτουργική σημασιολογία μπορεί να ορίζει κάποια αφηρημένη μηχανή (abstract machine) και να δίνει νόημα σε φράσεις αποδίδοντάς τους τις μεταβάσεις που προκαλούν στις καταστάσεις της μηχανής. Εναλλακτικά, όπως με τον καθαρό [[Λογισμός_λάμδαΛογισμός λάμδα|λ-λογισμό]], η λειτουργική σημασιολογία μπορεί να οριστεί μέσω συντακτικών μετασχηματισμών σε φράσεις της ίδιας της γλώσσας.
* '''[[Αξιωματική σημασιολογία]]''' ('''Axiomatic semantics'''), η οποία δίνει νόημα σε φράσεις περιγράφοντας τα ''[[λογική|λογικά]] [[αξίωμα|αξιώματα]]'' που εφαρμόζονται σε αυτές. Η αξιωματική σημασιολογία δε διακρίνει μεταξύ του νοήματος μιας φράσης και των λογικών προτάσεων που την περιγράφουν: το νόημά της ''είναι'' ακριβώς ότι μπορεί να αποδειχτεί για αυτή σε κάποια λογική. Το κλασικό παράδειγμα αξιωματικής σημασιολογίας είναι η [[λογική Χόαρ]].
 
Γραμμή 33:
* Τη σχέση μεταξύ υπολογισμού και των βασικών μαθηματικών δομών από πεδία όπως η [[λογική]], η [[θεωρία συνόλων]], η [[θεωρία μοντέλων]], η [[θεωρία κατηγοριών]], κλπ.
 
Συνδέεται στενά με άλλες περιοχές της επιστήμης των υπολογιστών όπως η σχεδίαση γλωσσών προγραμματισμού, η [[θεωρία τύπων]], οι [[μεταγλωττιστής|μεταγλωττιστές]], οι [[Διερμηνέας_Διερμηνέας (υπολογιστές)|διερμηνείς]], η [[ορθότητα προγράμματος]] και ο [[έλεγχος μοντέλων]].
 
== Δείτε επίσης ==
Γραμμή 46:
* Shriram Krishnamurthi. ''Programming Languages: Application and Interpretation''. ([http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/ online], σαν PDF)
* John C. Reynolds. ''Theories of Programming Languages''. Cambridge University Press, 1998. (ISBN 0-521-59414-6)
* Glynn Winskel. ''The Formal Semantics of Programming Languages: An Introduction''. MIT Press, 1993 (paperback ISBN 0-262-73103-7)
 
== Εξωτερικοί σύνδεσμοι ==
* {{cite book|last=Aaby|first=Anthony|title=Introduction to Programming Languages|year=2004|url=http://web.archive.org/web/20040410154109/cs.wwc.edu/~aabyan/PLBook/HTML/Semantics.html}} Semantics. {{en}}
{{ενσωμάτωση κειμένου|en|Formal semantics of programming languages}}
 
[[Κατηγορία:Γλώσσες προγραμματισμού]]
Γραμμή 56 ⟶ 57 :
 
[[ar:سيمانتيك شكلي]]
[[cv:Семантика (программăлани)]]
[[de:Formale Semantik]]
[[en:Formal semantics of programming languages]]
Γραμμή 64 ⟶ 66 :
[[ru:Семантика (программирование)]]
[[zh:形式语义学]]
 
{{ενσωμάτωση κειμένου|en|Formal semantics of programming languages}}