日韩精品一区二区三区高清_久久国产热这里只有精品8_天天做爽夜夜做爽_一本岛在免费一二三区

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

COP 3402代做、代寫Java/C++程序
COP 3402代做、代寫Java/C++程序

時間:2025-06-15  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



University of Central Florida
School of Electrical Engineering & Computer Science
COP 3402: System Software
Summer 2025

Homework #2 (Lexical Analyzer)
(Team max. two students) 

Due Sunday, June 14th, 2025 by 11:59 p.m. 

Goal:
In this assignment your team have to implement a lexical analyzer for the programming language PL/0. Your program must be capable to read in a source program written in PL/0, identify some errors, and produce, as output, the source program, the source program lexeme table, and the token list. For an example of input and output refer to Appendix A. In the next page we show you the grammar for the programming language PL/0 using the extended Backus-Naur Form (EBNF).

You will use the given Context Free Grammar (see next page) to identify all symbols the programming language provides you with.  These symbols are shown below:

Reserved Words: const, var, procedure, call, begin, end, if, fi, then, else, while, do, read, write.        
Special Symbols: ‘+’, ‘-‘, ‘*’, ‘/’, ‘(‘, ‘)’, ‘=’, ’,’ , ‘.’, ‘ <’, ‘>’,  ‘;’ , ’:’ .
Identifiers: identsym = letter (letter | digit)* 
Numbers: numbersym = (digit)+
Invisible Characters: tab, white spaces, newline
Comments denoted by: /* . . .   */

Refer to Appendix B for a declaration of the token symbols that may be useful.

In this assignment, you will not check syntax.

Example1: program written in PL/0:

var x, y;
x := y * 2.

Use these rules to read PL/0 grammar expressed in EBNF.

1.- [ ] means an optional item, 
2.- { } means repeat 0 or more times.
3.- Terminal symbols are enclosed in quote marks.
4.- Symbols without quotes are called no-terminals or a syntactic class.
5.-A period is used to indicate the end of the definition of a syntactic class.
6.-The symbol ‘::=’ is read as ‘is defined as’; for example, the following syntactic class:

program ::= block ".".  

must be read as follows: 
a program    is defined as    a block followed by a   dot.
   program             ::=                   block                                ".".  

Context Free Grammar for PL/0 expressed in EBNF.

program ::= block "." . 
block ::= const-declaration  var-declaration  proc-declaration statement.    
const-declaration ::= [ “const” ident "=" number {"," ident "=" number} “;"].    
var-declaration  ::= [ "var" ident {"," ident} “;"].
proc-declaration::= {"procedure" ident ";" block ";" } .
statement   ::= [ ident ":=" expression
| "call" ident
              | "begin" statement { ";" statement } "end" 
              | "if" condition "then" statement "fi"
        | "if" condition "then" statement “else" statement "fi"
             | "while" condition "do" statement
        | “read” ident
| “write” ident
              | empty ] . 
 
condition ::=  expression  rel-op  expression.
  
rel-op ::= "="|“<>"|"<"|"<="|">"|">=“.
expression ::= term { ("+"|"-") term}.
term ::= factor {("*"|"/") factor}. 
factor ::= ident | number | "(" expression ")“.

In this assignment, you will identify valid PL/0 symbols and then translate them into an internal representation called “Tokens”.

Lexical Grammar for PL/0 expressed in EBNF.

ident ::= letter {letter | digit}.
letter ::= "a" | "b" | … | "y" | "z" | "A" | "B" | ... | "Y" | "Z".
number ::= digit {digit}.
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9“.

Lexical Conventions for PL/0:
A numerical value is assigned to each token (internal representation) as follows: 
skipsym = 1, identsym = 2, numbersym = 3, plussym = 4, minussym = 5, 
multsym = 6,  slashsym = 7, fisym = 8,  eqlsym = 9, neqsym = 10, lessym = 11, leqsym = 12, gtrsym = 13, geqsym = 14, lparentsym = 15, rparentsym = 16, commasym = 17, semicolonsym = 18, periodsym = 19, becomessym = 20, 
beginsym = 21, endsym = 22, ifsym = 23, thensym = 24, whilesym = 25, dosym = 26, callsym = 27, constsym = 28, varsym = 29, procsym = 30, writesym = 31, 
readsym = 32, elsesym = 33.


Example2: program written in PL/0:

var w, x;
read w;
begin
   x:= 4;
   if w > x then
    w:= w + 1
   else
    w:= x;
   fi
end
write w. 


Remember, in this assignment, you will not check syntax.

For the scanner 
x := y + 7;          and          + 7 ; x y :=   are valid inputs
Constraints:
Input:
1.Identifiers can be a maximum of 11 characters in length.
2.Numbers can be a maximum of 5 digits in length.
3.Comments should be ignored and not tokenized.
4.Invisible Characters should be ignored and not tokenized.

Output:
1.The token separator in the output's Lexeme List (Refer to Appendix A) can be either a space or a bar ('|').
2.In your output's Lexeme List, identifiers must show the token and the variable name separated by a space or bar.
3.In your output's Token list, numbers must show the token and the value separated by a space or bar. The value must be transformed into ASCII Representation.
4.Be consistent in output. Choose either bars or spaces and stick with them.
5.The token representation of the Token list will be used in the Parser (HW3). So, PLAN FOR IT!

Detect the Following Lexical Errors:

1.Number too long.
2.Name too long.
3.Invalid symbols.

When an error is detected, an error message must be printed, and the scanner continues running. For example:

lexeme                token type
$        “Error: invalid symbol” 


Hint: You could create a transition diagram (DFS) to recognize each lexeme on the source program and once accepted generate the token, otherwise emit an error message.
 
Submission Instructions:
Submit to Webcourse:
1. Source code. (lex.c) 
2. Instructions to use the program in a readme document.
3. One run containing the input file (Source Program), and output file. The output file must show:  
 (Source,  Lexeme Table(lexeme-token), Token List)

    When errors are found, do not print out the Token list.

Appendix A:

If the input is:
var x, y;
begin
    y := 3;
    x := y + 56;
end.

The output will be:
Source Program:
var x, y;
begin
Token List:
29 2 x 17 2 y 18 21 2 y 20 3 3 18 2 x 20 2 y 4 3 56 18 22 19
 
Appendix B:

Declaration of Token Types:
typedef enum { 
skipsym = 1, identsym, numbersym, plussym, minussym,
multsym,  slashsym, fisym, eqsym, neqsym, lessym, leqsym,
gtrsym, geqsym, lparentsym, rparentsym, commasym, semicolonsym,
periodsym, becomessym, beginsym, endsym, ifsym, thensym, 
whilesym, dosym, callsym, constsym, varsym, procsym, writesym,
readsym , elsesym} token_type;

Example of Token Representation:
“29  2 x  17  2 y 18  21  2 x 21  2 y 4  3 56 18  22  19”

Is Equivalent:
varsym identsym  x  commasym  identsym  y  semicolonsym  beginsym  identsym  x
becomessym identsym y plussym numbersym 56 semicolonsym endsym periodsym

Appendix C:

Example of a PL/0 program: 
const m = 7, n = 85;  
var  i,x,y,z,q,r;  
procedure mult; 
   var a, b;  
  begin 
     a := x;  b := y; z := 0;   
     while b > 0 do    
     begin 
        if x =1 then z := z+a fi;       
        a := 2*a; 
        b := b/2;     
     end   
  end;

begin
  x := m;
  y := n;
  call mult;
end.

Find out the output for this example!

Rubric:

Integrity:
Plagiarism or Resubmission of Old Programs: -100 points
Compilation & Execution:
Programs That Don't Compile: -100 points
Program Cannot Reproduce any output in the terminal: -10 points
Program is white-space dependent: -10 points
For example, a+b should be properly tokenized.
For example, 4hello is two tokens: a number and an identifier.
Submission Files:
Missing lex.c: -100 points
Missing readme File: -5 points
Missing Input or Output File: -5 points
Partial Missing: -2.5 points for either input or output file
Lexical Error Detection:
Not Detecting All Three Lexical Errors: -15 points
Each lexical error detection is worth 5 points.
Output Formatting:
Output Significantly Unaligned with Appendix A: -5 points
Late Submissions:
One Day Late: -10 points
Two Days Late: -20 points

No email submission will be accepted. 

If an extension is given, Late policy does not apply.

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp


 

掃一掃在手機打開當前頁
  • 上一篇:代寫MATH3831、代做Python/C++程序
  • 下一篇:618 NMN品牌終極戰!三井制藥NMN現象級表現成為養顏抗衰領域定海神針
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    有限元分析 CAE仿真分析服務-企業/產品研發/客戶要求/設計優化
    有限元分析 CAE仿真分析服務-企業/產品研發
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
    合肥機場巴士2號線
    合肥機場巴士2號線
  • 短信驗證碼 豆包 幣安下載 目錄網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    日韩精品一区二区三区高清_久久国产热这里只有精品8_天天做爽夜夜做爽_一本岛在免费一二三区

      <em id="rw4ev"></em>

        <tr id="rw4ev"></tr>

        <nav id="rw4ev"></nav>
        <strike id="rw4ev"><pre id="rw4ev"></pre></strike>
        另类专区欧美制服同性| 免费成人高清在线视频| 欧美午夜宅男影院| 亚洲视频国产视频| 国产日产欧美a一级在线| 午夜激情亚洲| 国产视频精品va久久久久久| 国产精品影片在线观看| 亚洲精选视频免费看| 久久久久久久久久久久久女国产乱| 亚洲免费成人av电影| 欧美日韩美女在线| 欧美一区二区日韩一区二区| 一区二区三区四区国产精品| 男人的天堂亚洲在线| 午夜国产一区| 亚洲国产精品ⅴa在线观看| 国产精品www994| 欧美成人黄色小视频| 亚洲美女精品久久| 欧美 日韩 国产一区二区在线视频| 欧美日韩一二三四五区| 中文一区字幕| 日韩亚洲一区在线播放| 亚洲欧美日韩成人高清在线一区| 国产精品自在欧美一区| 狠狠色综合网站久久久久久久| 久久日韩粉嫩一区二区三区| 欧美亚洲日本网站| 国产午夜精品全部视频播放| 国产欧美日韩一区二区三区在线| 亚洲日本理论电影| 国产午夜精品理论片a级大结局| 国产精品一级| 亚洲国产精品久久久久秋霞影院| 日韩视频在线一区二区| 在线观看亚洲视频啊啊啊啊| 欧美日韩午夜| 欧美一区二区女人| 国产一区成人| 亚洲精品视频在线观看网站| 久久久夜精品| 一本色道久久综合亚洲精品小说| 欧美在线一二三区| 一区二区视频欧美| 亚洲电影av在线| 久久人人精品| 欧美大片网址| 国内精品免费午夜毛片| 影音先锋一区| 激情成人在线视频| 亚洲欧美日韩中文在线制服| 国产综合色产在线精品| 国产日韩欧美一区二区三区在线观看| 激情一区二区三区| 日韩天堂在线观看| 欧美激情小视频| 欧美高清在线一区| 国产日韩综合一区二区性色av| 欧美日本韩国一区| 欧美视频成人| 亚洲精品网站在线播放gif| 国产精品夜色7777狼人| 日韩一级欧洲| 亚洲免费观看视频| 国产真实乱偷精品视频免| 久久久久成人网| 国产精品人成在线观看免费| 国产精品va在线| 久久国产欧美| 在线观看欧美精品| 欧美日韩高清免费| 亚洲日本视频| 巨乳诱惑日韩免费av| 欧美成人高清视频| 久久激情五月激情| 久久av一区二区| 老司机午夜精品| 中日韩视频在线观看| 欧美日韩一区二区三区高清| 亚洲一区欧美| 欧美无砖砖区免费| 欧美日韩精品免费观看视频| 欧美日韩国产探花| 国产亚洲一区二区三区在线观看| 欧美激情精品久久久久久变态| 国产日韩欧美日韩大片| 亚洲一区二区三区欧美| 久久夜色精品国产欧美乱极品| 久久久久久夜精品精品免费| 欧美大片在线观看一区二区| 亚洲国产经典视频| 免费在线观看成人av| 亚洲自拍偷拍福利| 欧美午夜激情小视频| 亚洲精选在线| 欧美日韩免费一区二区三区| 国内在线观看一区二区三区| 欧美不卡在线| 欧美成年人视频网站| 国产一区二区三区四区老人| 午夜视频一区在线观看| 亚洲国产精品一区二区久| 亚洲一区制服诱惑| 精品99视频| 亚洲综合色网站| 亚洲一区美女视频在线观看免费| 正在播放欧美视频| 亚洲天堂激情| 亚洲国产精品高清久久久| 欧美极品在线播放| 欧美日韩aaaaa| 欧美中文字幕不卡| 欧美日韩国产成人精品| 亚洲女女女同性video| 欧美日韩极品在线观看一区| 欧美日韩成人免费| 欧美经典一区二区三区| 性欧美激情精品| 亚洲国产成人91精品| 亚洲国产午夜| 亚洲永久在线| 欧美国产专区| 国产日韩欧美综合一区| 国产精品福利久久久| 久久精品视频在线免费观看| 欧美日韩人人澡狠狠躁视频| 伊人成人在线| 欧美日韩精品不卡| 男人插女人欧美| 日韩亚洲综合在线| 国产日韩成人精品| 欧美亚洲一区三区| 久久国产精品久久精品国产| 欧美gay视频激情| 亚洲风情亚aⅴ在线发布| 久久影音先锋| 亚洲另类自拍| 国产日韩精品综合网站| 在线日韩电影| 国产精品久久久久久久7电影| 亚洲一区二区三区在线| 久久精品色图| 黄色成人在线观看| 极品尤物av久久免费看| 欧美一区二区精品| 一区二区日韩欧美| 亚洲精选一区二区| 国产在线精品成人一区二区三区| 亚洲毛片网站| 欧美成人dvd在线视频| 欧美在线91| 免费试看一区| 亚洲影院色在线观看免费| 国内成人精品一区| 亚洲国产成人久久综合| 日韩午夜视频在线观看| 亚洲欧美久久久久一区二区三区| 最新国产成人av网站网址麻豆| 亚洲午夜一二三区视频| 国产亚洲毛片在线| 在线播放亚洲一区| 国产欧美一区二区三区沐欲| 免费在线欧美黄色|