Download presentation
Presentation is loading. Please wait.
Published byJulie Morris Modified over 8 years ago
1
1 CS 403 - Programming Languages Class 04 September 5, 2000
2
CS 403, Class 04 Slide # 2 Today’s Agenda Take up Homework on ‘printf’ Finish Chapter 2 Chapter 3: Syntax
3
CS 403, Class 04 Slide # 3 Homework 1 Take up homework 1: C ‘printf’ program & discussion.
4
CS 403, Class 04 Slide # 4 C++ - 1985 (Finish Ch 2) Developed at Bell Labs by Stroustrup Evolved from C and SIMULA 67 Facilities for object-oriented programming, taken partially from SIMULA 67, were added to C Also has exception handling
5
CS 403, Class 04 Slide # 5 C++ (2) A large and complex language, in part because it supports both procedural and OO programming Rapidly grew in popularity, along with OOP ANSI standard approved in November, 1997
6
CS 403, Class 04 Slide # 6 Java - 1995 Developed at Sun in the early 1990s Based on C++ Significantly simplified Supports only OOP Has references, but not pointers Includes support for applets and a form of concurrency
7
CS 403, Class 04 Slide # 7 Chapter 3: Syntax & Semantics Syntax: the form or structure of the expressions statements, and program units Semantics : the meaning of the expressions, statements, and program units Who needs language definitions? Other language designers Implementers (compiler writers) Programmers (users of the language)
8
CS 403, Class 04 Slide # 8 Basic Terms Sentence: a string of characters over some alphabet Language: a set of sentences A lexeme is the lowest level syntactic unit of a language (e.g., *, sum, begin ) A token is a category of lexemes (e.g., identifier)
9
CS 403, Class 04 Slide # 9 Formal Approaches to Syntax Recognizers - first part of any compiler Generators - what we'll study
10
CS 403, Class 04 Slide # 10 Context-Free Grammars (CFGs) Developed by Noam Chomsky in the mid-1950s. Language generators, meant to describe the syntax of natural languages. Define a class of languages called context-free languages (CFLs).
11
CS 403, Class 04 Slide # 11 Backus Normal Form (BNF) Backus Normal Form (1959) Invented by John Backus to describe Algol 58 BNF is equivalent to context-free grammars (Also called “Backus-Naur Form”)
12
CS 403, Class 04 Slide # 12 CFGs/CFLs and BNF A metalanguage is a language used to describe another language. In BNF, abstractions are used to represent classes of syntactic structures--they act like syntactic variables (also called nonterminal symbols.
13
CS 403, Class 04 Slide # 13 BNF Rules while do This is a rule; it describes the structure of a while statement. A rule has a left-hand side (LHS) and a right-hand side (RHS), and consists of terminal and nonterminal symbols. A grammar is a finite nonempty set of rules.
14
CS 403, Class 04 Slide # 14 BNF Rules (2) An abstraction (or nonterminal symbol) can have more than one RHS | begin end Syntactic lists are described in BNF using recursion. ident | ident,
15
CS 403, Class 04 Slide # 15 BNF Derivation A derivation is a repeated application of rules, starting with the start symbol and ending with a sentence (all terminal symbols).
16
CS 403, Class 04 Slide # 16 An Example Grammar | ; = a | b | c | d + | - | const
17
CS 403, Class 04 Slide # 17 An Example Derivation = a = a = + a = b + a = b + const
18
CS 403, Class 04 Slide # 18 Every string of symbols in the derivation is a sentential form. A sentence is a sentential form that has only terminal symbols. A leftmost derivation is one in which the leftmost nonterminal in each sentential form is the one that is expanded. A derivation may be neither leftmost nor rightmost.
19
CS 403, Class 04 Slide # 19 Parse Tree A parse tree is a hierarchical representation of a derivation. = a + const b
20
CS 403, Class 04 Slide # 20 Exercise Given the following grammar, draw a parse tree for this expression: x = y + 2
21
CS 403, Class 04 Slide # 21 Exercise Grammar = | + | 1 | 2 | 3 | … | 9 | 0 a | b | c | … | x | y | z
22
CS 403, Class 04 Slide # 22 Question: For any programming language you know (Ada, Pascal, C++, assembler, …) Is it a context-free language? Does it have an ambiguous grammar?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.