Last Lecture Revisited

Slides:



Advertisements
Similar presentations
Chapter 2 Combinatorial Analysis 主講人 : 虞台文. Content Basic Procedure for Probability Calculation Counting – Ordered Samples with Replacement – Ordered.
Advertisements

邱锡鹏 复旦大学计算机科学技术学院 Text Books  “Dragon book”  Compilers: Principles, Techniques, and Tools (2nd Edition)  Alfred V. Aho;Monica S.
說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
Time Objectives By the end of this chapter, you will be able to
-CHINESE TIME (中文时间): Free Response idea: 你周末做了什么?
周柏伶 國立台中女中輔導主任 彰師大輔導與諮商研究所碩士 諮商心理師
我们会赞叹生命之花的绚丽和多姿,也会歌颂生命之树的烂漫和青翠,但是生命是如此脆弱……
TQC+ 物件導向程式認證-JAVA.
Lesson 8 Students: 2-3 students in one group
编译原理上机实习
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
Starter: What is that secret number?.  6  7  8  9  10  Liù 六  Qī 七  Bā 八  Ji ǔ 九  Shí 十.
程設一.
Welcome Welcome to my class Welcome to my class!.
Homework 4 an innovative design process model TEAM 7
Life relies on sports 生命在于运动.
CH1 Number Systems and Conversion
Introduction to Lex 電資三 B 盧逸峮
! 温故知新 上下文无关文法 最左推导 最右推导 自上而下 自下而上 句柄 归约 移进-归约冲突 移进-归约分析 递归下降预测分析
關聯式資料庫.
Nationality Objective
Lesson 27: The Dove and the Olive Branch.
Chapter 4 歸納(Induction)與遞迴(Recursion)
2.2 语法分析器生成器YACC 分析器的构造步骤: 产生式→识别活前缀的DFA→分析表(+驱动器) YACC概述
樹狀結構 陳怡芬 2018/11/16 北一女中資訊專題研究.
Unit title: 嗨!Hi! Introducing yourself in Chinese
Nationality Objective
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
Transact-SQL 語言設計教學.
Write a letter in a proper format
Lexical analyzer generator
编译原理与技术 词法分析(1) 2018/11/28 《编译原理与技术》讲义.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
Nationality Objective
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
Time Objectives By the end of this chapter, you will be able to
Area of interaction focus
Enjoy your life every day
第三章 词法分析.
Last Lecture Revisited
This Is English 3 双向视频文稿.
子博弈完美Nash均衡 我们知道,一个博弈可以有多于一个的Nash均衡。在某些情况下,我们可以按照“子博弈完美”的要求,把不符合这个要求的均衡去掉。 扩展型博弈G的一部分g叫做一个子博弈,如果g包含某个节点和它所有的后继点,并且一个G的信息集或者和g不相交,或者整个含于g。 一个Nash均衡称为子博弈完美的,如果它在每.
Time Objectives By the end of this chapter, you will be able to
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
10/26 今天的学习目标 (Today’s Learning Objectives)
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
Section B 2b–3b & Self Check
Chapter 3 Nationality Objectives:
第二章 词法分析 (Lexical Analysis)
第十五课:在医院看病.
國立東華大學試題 系所:資訊管理學系 科目:資料庫管理 第1頁/共4頁
解读设题意图,探究阅读策略 年高考试卷题型(阅读理解)分析及对策
—— 周小多.
How to be lucky 初中基础 (2356期 ) 6版.
Interesting or inspiring sequences
How to get there? Lesson 1.
每周三交作业,作业成绩占总成绩的15%; 平时不定期的进行小测验,占总成绩的 15%;
Interesting or inspiring sequences
中央社新聞— <LTTC:台灣學生英語聽說提升 讀寫相對下降>
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
冀教版 九年级 Lesson 20: Say It in Five.
Lesson 2 What’s your name?
2 Number Systems, Operations, and Codes
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
编译原理 第一章 引 论 南京大学计算机科学与技术系 戴新宇.
二项式的分解因式 Factoring binomials
Area of interaction focus
My favorite subject science.
Significant Figures 有效數字
Presentation transcript:

Last Lecture Revisited What and Why to study this course? Def. of translator and compiler Structure of compiler, front-end, back-end “Pass”

Chapter 2. Lexical Analysis   Lexical Analyzer Syntax Analyzer Symbol Table Token Get next token Source Code   词法分析器 语法分析器 符号表 记号 取下一个记号 源程序 2

What lexical analysis does: Lexical analyzer Tokens Source code

2.1 Token and attributes 2.1.1 Token、pattern、lexeme Lexeme:strings in source code。 Token:a token represent a type of strings subject to some rules (patterns) 。 Pattern: determines how a token relates to lexemes letters sequences lexeme token pattern

An example letters token var count : integer ; count = 5 ; lexeme sequences lexeme token pattern eg: var count : integer ; count = 5 ; lexeme

Token Examples Description of Patterns var var var for for for Tokens and patterns Token Examples Description of Patterns var var var for for for relation < , < = , = , … < or <= or = or … id sum, count, D5 letter and number string starting with a letter num 3.1, 10, 2.8 E12 any numerical value literal “seg. error” the string within “ ”

noun Dalian, Sea names of things Token Examples Pattern description relation < , < = , = , … < or <= or = or … id sum, count, D5 letter and number string starting with a letter Token Examples Pattern description Chinese Zemin Jiang male/female with China nationality American Clinton,Obama male/female with USA nationality

2.1 词法记号及属性 Some issues in the history Should we omit the blanks or not? DO 8 I  3. 75 DO8I  3. 75 DO 8 I  3, 75 Should we reserve the keywords or not? IF THEN THEN THEN=ELSE;ELSE …

2.1.2 Attributes of tokens position := initial + rate * 60 id,pointer to the position item in the symble table assign _ op,  id,pointer to the initial item in the symble table add_op,+  id,pointer to the rate item in the symble table  mul_ op, * num,60

Exercise of symbol table: Write a piece of code to calculate the number of words, the number of distinct words. eg: I love Dalian and I love DLUT Word number:7 Distinct word number:5

2.1.3 Lexical Errors It’s hard to find the following error, since lexical analysis is locally insightful. fi (a == f (x) ) … An exception: 123.

2.1.3 Lexical Errors Recovery “emergency model” “recovery try” delete an additional character insert a missing character replace an invalid character with an valid one swap two adjacent characters

2.2 Description and Identification of Tokens 2.2.1 String and Language Alphabet table:set of symbol,eg. = {0,1} String:sequence of symbols, eg.0110, Language:set of strings {,0,00,000,…}, {},  Sentence:string in a language empty string 字母 组合 串 语言 集合 字母表 词法单元 模式 记号

Operators over strings 2.2.1 String and Language Operators over strings concatenation : xy,s = s = s Product(exponent): s0=,si=si -1s(i > 0)

Operators over languages plus:L∪M = {s | s L 或 s  M } concatenation :LM = {st | s  L 且 t  M} exponent:L0是{ },Li是Li -1L closure:L = L0 ∪ L1 ∪ L2 ∪… positive closure: L+ = L1 ∪ L2 ∪… e.g. 2.2(p14) L: { A, B, …, Z, a, b, …, z }, D: { 0, 1, …, 9 } L∪D, LD, L6, L*, L(L∪D )*, D+

2.2.2 Regular Expression (RE) 正规式是用于说明词法单元如何到对应到词法记号的模式。与非形式化的描述相比,正规式更具形式化,更加精确。 2.2.2 Regular Expression (RE) Regular expression: According to a set of rules, formal regulations show how to form languages from scratch.

RE language defined description  {} a {a} a   (r) | (s) L(r)∪L(s) r and s are FEs (r)(s) L(r)L(s) r and s are FEs (r)* (L(r))* r is a FE (r) L(r) r is a FE Priorities of operators: * > concatenation > |

Some examples of RE  = {a, b} a | b {a, b} (a | b) (a | b ) {aa, ab, ba, bb} aa | ab | ba | bb {aa, ab, ba, bb} a* all the strings consisting of ‘a’ (a | b)* all the strings consisting of ‘a’ and ‘b’

这样就保证了,每个名字对应的正规式中使用的各种符号已经在前面定义了,从而可以避免递归定义的情况。 2.2.3 Names of RE For brevity, we can name some REs。 d1  r1 d2  r2 . . . dn  rn di must be different from each other Every ri must be a FE over  {d1, d2, …, di-1 } 这样就保证了,每个名字对应的正规式中使用的各种符号已经在前面定义了,从而可以避免递归定义的情况。

Examples of RE IDs in Pascal letter  A | B | … | Z | a | b | … | z digit  0 | 1 | … | 9 id  letter(letter|digit)*

Unsigned numbers in Pascal Simplified notations: r+=rr* r?=r|  [a-z]=a|b|c|…|z Unsigned numbers in Pascal 1946,11.28,63.6E8,1.99E6 digit  0 | 1 | … | 9 digits  digit digit* optional_fraction  .digits| optional_exponent  (E ( + |  |  ) digits ) |  numdigits optional_fraction optional_exponent Simplified notations: num  digit+ (.digit+)? (E(+|)? digit+)?

relop  < | < = | = | < > | > | > = while  while do  do relop  < | < = | = | < > | > | > = id  letter (letter | digit )* num  digit+ (.digit+)? (E (+ | )? digit+)? delim  blank | tab | newline ws  delim+ Actually, the tokens are the RE names

Summary 源程序字符流 顺序组合 词法单元 词法记号 模式 非形式化描述 形式化描述 正规式 字母 组合 串 语言 集合 字母表 名字 词法分析器工作原理: 源程序字符流 顺序组合 词法单元 词法记号 模式 非形式化描述 形式化描述 正规式 字母 组合 串 语言 集合 字母表 名字 词法分析器 记号(token)流 源代码