cse443 compilers
play

CSE443 Compilers Dr. Carl Alphonce alphonce@buffalo.edu 343 Davis - PowerPoint PPT Presentation

CSE443 Compilers Dr. Carl Alphonce alphonce@buffalo.edu 343 Davis Hall Syllabus Posted on website Academic Integrity Textbook Classic text. You should hang on to this one. Team formation If you have a team, please list members in


  1. CSE443 Compilers Dr. Carl Alphonce alphonce@buffalo.edu 343 Davis Hall

  2. Syllabus Posted on website Academic Integrity

  3. Textbook Classic text. You should hang on to this one.

  4. Team formation If you have a team, please list members in response to Piazza post. Also indicate your choice: C or SML.

  5. Linotte C French keywords English keywords syracuse : void syracuse() { durée est un nombre int iterations = 0; e est un nombre int e; début e prend 14 e = 14; tant que e != 1 lis while (e != 1) { durée prend durée + 1 iterations = iterations + 1; si (e mod 2) = 0, e prend e / 2 if ( (e % 2) == 0 ) e = e / 2; sinon e prend e * 3 + 1 else e = e * 3 + 1; affiche e printf("%d\n",e); ferme } affiche "durée = {durée}" printf("iterations = %d\n",iterations); } • Keywords have no inherent meaning. • Program meaning is given by formal semantics. • Compiler must preserve semantics of source program in translation to low level form.

  6. Syntax and semantics Syntax: program structure Semantics: program meaning Semantics are determined (in part) by program structure.

  7. Languages: the Chomsky hierarchy "On Certain Formal Properties of Grammars" published 1959 recursively enumerable context-sensitive context-free regular https:/ /upload.wikimedia.org/wikipedia/commons/8/86/Noam_chomsky.jpg

  8. SOURCE: https:/ /openi.nlm.nih.gov/detailedresult.php?img=PMC3367694_rstb20120103-g2&req=4 AUTHORS: Fitch WT, Friederici AD - Philos. Trans. R. Soc. Lond., B, Biol. Sci. (2012) LICENSE: http:/ /creativecommons.org/licenses/by/3.0/

  9. Syntactic structure Lexical structure SOURCE: https:/ /openi.nlm.nih.gov/detailedresult.php?img=PMC3367694_rstb20120103-g2&req=4 AUTHORS: Fitch WT, Friederici AD - Philos. Trans. R. Soc. Lond., B, Biol. Sci. (2012) LICENSE: http:/ /creativecommons.org/licenses/by/3.0/

  10. Lexical Phases of structure a Syntactic compiler structure Figure 1.6, page 5 of text

  11. Lexical Phases of structure a compiler Figure 1.6, page 5 of text

  12. Lexical Structure int main(){

  13. Lexical Structure int main(){ character stream i n t m a i n ( ) {

  14. Lexical Structure int main(){ character stream -> token stream i n t m a i n ( ) { id(“int”) id(“main”) LPAR RPAR LBRACE

  15. Lexical Structure tokens keywords (e.g. static, for, while, struct) operators (e.g. <, >, <=, =, ==, +, -, & , .) identifiers (e.g. foo, bar, sum, mystery) literals (e.g. -17, 34.52E-45, true, ’e’, “Serenity”) punctuation (e.g. { , } , ( , ) , ; )

  16. meta vs object language object language: the language we are describing meta language: the language we use to describe the object language

  17. meta vs object language use quotes (meta vs ‘object’) punctuation (e.g. ‘{’ , ‘}’ , ‘(’ , ‘)’ , ‘;’ ) use font or font property (meta vs object) punctuation (e.g. { , } , ( , ) , ; )

  18. languages & grammars Formally, a language is a set of strings over some alphabet Ex. {00, 01, 10, 11} is the set of all strings of length 2 over the alphabet {0, 1} Ex. {00, 11} is the set of all even parity strings of length 2 over the alphabet {0, 1}

  19. languages & grammars Formally, a grammar is defined by 4 items: 1. N, a set of non-terminals 2. ∑ , a set of terminals 3. P, a set of productions 4. S, a start symbol G = (N, ∑ , P, S)

  20. languages & grammars N, a set of non-terminals ∑ , a set of terminals (alphabet) N ∩ ∑ = {} P, a set of productions of the form (right linear) X -> a X -> aY X -> ℇ X ∈ N, Y ∈ N, a ∈ ∑ , ℇ denotes the empty string S, a start symbol S ∈ N

  21. languages & grammars Given a string αΑ , where α ∈ ∑ * and Α ∈ N, and a production Α -> β ∈ P we write αΑ => αβ to indicate that αΑ derives αβ in one step. => k and => * can be used to indicate k or arbitrarily many derivation steps, respectively.

  22. languages & grammars 𝓜 (G) is the set of all strings derivable from G starting with the start symbol; i.e. it denotes the language of G.

  23. languages & grammars Given a grammar G the language it generates, 𝓜 (G), is unique. Given a language L there are many grammars H such that 𝓜 (H) = L.

  24. Lexical Analysis Lexical structure described by regular grammar Deterministic finite state machine performs analysis

  25. LANGUAGE operations If L and M are regular, so are: L ∪ M = { s | s ∈ L or s ∈ M } union LM = { st | s ∈ L and t ∈ M } concatenation L * = ∪ i=0, ∞ L i Kleene closure By definition, L 0 = { ℇ }

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend