日韩精品一区二区三区高清_久久国产热这里只有精品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現象級表現成為養顏抗衰領域定海神針
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    仿真分析咨詢外包服務-結構 / 熱 / CFD流體 / 電磁 / 光學CAE代做
    仿真分析咨詢外包服務-結構 / 熱 / CFD流體
    流體仿真外包多少錢_專業CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務 管路
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真技術服務
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲勞振動
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲
    流體cfd仿真分析服務 7類仿真分析代做服務40個行業
    流體cfd仿真分析服務 7類仿真分析代做服務4
    超全面的拼多多電商運營技巧,多多開團助手,多多出評軟件徽y1698861
    超全面的拼多多電商運營技巧,多多開團助手
    CAE有限元仿真分析團隊,2026仿真代做咨詢服務平臺
    CAE有限元仿真分析團隊,2026仿真代做咨詢服
  • 豆包網頁版入口 Trae 目錄網 排行網

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

    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>
        欧美日韩国产免费| 天天摸日日摸狠狠添| 亚洲а∨精品天堂在线| 红桃视频国产一区| 免费在线视频一区二区| 精品国产1区二区| 亚洲第一中文字幕| 欧美日韩在线视频免费观看| 一区二区欧美国产| 亚洲.国产.中文慕字在线| 日韩精品手机在线观看| 国产成人精品综合久久久| 日韩精品在线观| 高清不卡一区二区| 久久精品欧美日韩精品| 日韩中文在线字幕| 日韩欧美中文字幕视频| 亚洲欧洲国产视频| 亚洲福利一区| 91精品国产自产在线| 亚洲大片精品永久免费| 亚洲热在线观看| 视频一区日韩| 91精品国产综合久久福利| 最近免费中文字幕在线第一页| 欧美日韩亚洲不卡| 欧美亚洲国产激情| 久精品在线观看| 亚洲综合在线小说| 亚洲中文字幕在线一区| 中文字幕 日韩 欧美| 亚洲开心激情| 欧美成人一区二区| 中文字幕成人乱码在线电影| 国产wwww| 中文字幕在线导航| 91色在线看| 国产欧美久久久久久久久| 91精品国产手机| 欧美日韩国产高清| 999精品色在线播放| 日韩欧美国产不卡| 日韩视频中文| 亚洲国产福利视频| 久久夜色精品国产噜噜亚洲av| 99久久精品国产成人一区二区| 顶级网黄在线播放| 欧美日韩激情一区二区三区| 久久99精品久久久| 日韩欧美一级精品久久| 欧美日韩成人综合| 免费中文字幕日韩欧美| 日韩中文字幕亚洲| 精品视频123区在线观看| 99久热re在线精彩视频| www中文字幕| 一区二区精品区| 日韩欧美不卡在线| 日韩精品视频在线观看网址| 精品在线99| 国产成人精品网址| 精品999视频| 亚洲一区三区在线观看| 在线观看免费国产小视频| 欧美日韩亚洲不卡| 欧美日韩视频免费播放| 国产 欧美 日韩 在线| 中文字幕亚洲字幕| 91精品国产自产在线丝袜啪| 欧美日韩一二三| 中文字幕视频一区二区三区久| 日韩欧美国产午夜精品| 成人ww免费完整版在线观看| 免费在线观看国产黄| 欧美色视频一区二区三区在线观看| 欧美三级日韩三级国产三级| 国产日韩三级| 国产日产一区二区| 国产日韩综合| 天天综合天天做| 中文精品电影| 亚亚洲欧洲精品| 一区二区三区鲁丝不卡| 日本精品免费观看高清观看| 国产羞羞视频在线播放| 国产欧美日韩高清| 中文字幕狠狠干| 日韩在线观看视频一区二区| 中文字幕五月欧美| 国产高清一级片| 国产午夜精品视频免费不卡69堂| 中文字幕久久av| 欧美日韩精品高清| 深夜福利一区二区| 亚洲 欧美综合在线网络| 99这里有精品视频| 日韩久久久精品| 日韩精品福利一区二区三区| 久久精品一级爱片| 欧美日韩乱国产| 日韩久久不卡| 日韩视频国产视频| 国产在线日韩欧美| 国产成人精品网址| 精品播放一区二区| av一级在线| 青青久在线视频免费观看| 日韩精品视频免费在线观看| 国产在线看一区| 日韩 欧美 中文| 欧美一级欧美三级在线观看| 麻豆精品视频入口| 亚洲一级二级| 日韩视频精品在线| 日韩高清不卡一区| 亚洲免费观看视频| 亚洲一区导航| 亚洲人线精品午夜| 日韩欧美亚洲区| 欧美国产一区视频在线观看| 欧美日韩高清在线| 成年人黄国产| 日韩精品欧美| av免费不卡国产观看| 中文字幕 亚洲视频| 深夜福利一区| www.eeuss影院| 中文字幕 乱码 中文乱码91| 欧美性极品xxxx做受| 欧美日韩三级视频| 一区二区视频在线| 日韩欧美成人一区二区三区| 你懂的亚洲视频| 国产午夜精品视频| 中文字幕日韩国产| 欧美亚洲专区| 亚洲va中文字幕| 久久久久蜜桃| 国产高清在线一区| 在线免费视频一区二区| 91精品综合久久久久久| 欧美日韩免费精品| 欧美日韩国产在线播放| 成人a在线观看| 欧洲精品在线一区| 国产v日产∨综合v精品视频| 一级日本免费的| 国产一卡2卡3卡免费网站| 国产成人一二三区| 亚洲制服丝袜一区| 亚洲视频在线观看日本a| 欧美日韩国产观看视频| 日韩精品不卡一区二区| 欧美亚洲天堂| 欧美日韩国产页| 中文在线第一页| 日韩免费看网站| 精人妻一区二区三区| 中文字幕日韩高清| 91精品综合久久| 精品亚洲成a人片在线观看| 国产激情三区| 日韩精品视频免费| 国产中文在线观看|