Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 3341 Principles of Programming Languages Neelam Soundarajan Computer Sc. & Eng. Dreese Labs 579

Similar presentations


Presentation on theme: "CSE 3341 Principles of Programming Languages Neelam Soundarajan Computer Sc. & Eng. Dreese Labs 579"— Presentation transcript:

1 CSE 3341 Principles of Programming Languages Neelam Soundarajan Computer Sc. & Eng. Dreese Labs 579 e-mail: neelam@cse

2 CSE 3341/655; Part 1 2 Goals of the Course Main Goal: Discuss key concepts underlying PLs Sub-Goals: Alternative programming paradigms Implementation issues At end of course: Given a feature, you should be able to: Decide whether you like it or not, and why Have an idea how to implement it Decide what kinds of problems it is suited for.

3 CSE 3341/655; Part 1 3 How do we study a language? Syntax: What do legal programs in L look like? Semantics: What do the various instructions of L do (when exec.)? Programming Methodology: How are you supposed to use the features of L? For solving what kinds of problems?

4 CSE 3341/655; Part 1 4 Compilers Compiler M L→ML→M C P L (in L) PMPM Input For P PMPM Output M L→ML→M C : Compiler, in M, for translating from L to M

5 CSE 3341/655; Part 1 5 Compilers (contd.) M L→ML→M C M L’ → M C L C M L→ML→M C M L’ → L C L C M C P L’ PLPL M L→ML→M C PLPL PMPM C Eiffel → C C M C E.g.: From to

6 CSE 3341/655; Part 1 6 Identify a language I For each L, write For each M, write New machines are easy to handle; New languages are easy to handle; Common intermediate language: C Compilers: Intermediate Langs. I L→IL→I C M I→MI→M C

7 CSE 3341/655; Part 1 7 Interpreters M L I L L’ I P L’ Data For P Output From P PLPL M L I Data For P Output From P L M I : Interpreter for L (written in M)

8 CSE 3341/655; Part 1 8 What is an assembler? A simulator? The JVM? JIT: “Just-in-time” compilation Running theme for the course: Runtime versus compile-time "Interpreter interprets each line into binary code which can be run on different platforms": Not true! Compilers & Interpreters

9 CSE 3341/655; Part 1 9 BNF (“Backus Normal Form”): Notation for describing syntax of languages precisely. Example: Set of all non-negative integers: ::= | ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 |7 | 8 | 9 Set of all non-neg. nos. not starting with 0: ::= | ::= 1 | 2 | 3 | 4 | 5 | 6 |7 | 8 | 9??, ::=, | are reserved (“meta”) symbols;, : Non-terminals; 0, 1, 2,...: Terminals To define a BNF grammar: Specify terminal and non-termnial symbols; Define the production for each non-terminal. Syntax

10 CSE 3341/655; Part 1 10 Derivation trees/Parse trees How do you derive “655” from this grammar? 6 5 5 (There is a bug in this tree!) The string derived (or parsed) by the tree: Append together the labels at the leaves in left-to- right order.

11 CSE 3341/655; Part 1 11 Example: Grammar of expressions ::= | | + | * ::= X | Y | Z Parse tree for X + Y : X Y +

12 CSE 3341/655; Part 1 12 Grammar of expressions (contd.) Parse tree for X + Y * Z: X + * Y Z

13 CSE 3341/655; Part 1 13 Grammar of expressions (contd.) Another tree for X + Y * Z: Z * + X Y Which is the right tree? The grammar is ambiguous.

14 CSE 3341/655; Part 1 14 ::= | + ::= | | * | * This grammar is not ambiguous Reintroduce ambiguity among +’s and *’s (but not between + and *) Parenthesized expressions? Another grammar for expressions

15 CSE 3341/655; Part 1 15 Exercise: Make precedence left to right or right to left Ambiguous grammar for numbers: ::= | Even the following is not a good grammar: ::= | Problem: Wrong semantics. Q: Can you fix it? Grammars (contd.)

16 CSE 3341/655; Part 1 16 **Replace this page** with a discussion of regular expressions Syntax graphs: Pictorial representation of BNF grammars. Extended BNF (see Ch. 2.1.2 of book): [... ]:optional item {... }:repetition (0 or more times) * :repetition (0 or more times) + :repetition (1 or more times) ::= if then { } [else ] end-if; ::= elseIf then Grammars (contd.)


Download ppt "CSE 3341 Principles of Programming Languages Neelam Soundarajan Computer Sc. & Eng. Dreese Labs 579"

Similar presentations


Ads by Google