加勒比久久综合,国产精品伦一区二区,66精品视频在线观看,一区二区电影

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

代做COP 3402、代寫Python/c++語言程序
代做COP 3402、代寫Python/c++語言程序

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



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

Homework #2 (Lexical Analyzer)
 
Due Sunday, February 16th, 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.

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)

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
    y := 3;
    x := y + 56;
end.

Lexeme Table:

lexeme    token type     
var        29        
x        2
,        17        
y        2
;        18
begin        21
y        2
:=        20
3        3
;        18
x        2
:=          20        
y        2
+        4
56        3
;        18
end         22
.        19

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. 

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




 

掃一掃在手機打開當前頁
  • 上一篇:CP414編程代寫、代做Java/Python程序
  • 下一篇:代做Operating Systems 、代寫C++程序語言
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務-企業/產品研發/客戶要求/設計優化
    有限元分析 CAE仿真分析服務-企業/產品研發
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
  • 短信驗證碼 目錄網 排行網

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

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

    亚洲视频二区| 欧美国产91| 三级久久三级久久久| 在线亚洲国产精品网站| 日韩欧美中文字幕一区二区三区| 国产精品99精品一区二区三区∴| 在线免费观看日本欧美爱情大片| 久久久久久久久久久久电影| 亚洲国产一区二区三区a毛片| 国模套图日韩精品一区二区| 欧美体内she精视频在线观看| 亚洲精品在线国产| 91视频成人| 欧美激情三区| 欧美7777| 日韩在线一区二区三区| 精品一区免费| 久久91在线| 91成人噜噜噜在线播放| 高清精品久久| 国产日韩一区二区三区在线播放| 日韩一区二区三区免费播放| 在线综合视频| 亚洲国内精品| 日日天天久久| 福利片一区二区| 西瓜成人精品人成网站| 欧美片第1页综合| 精品三级在线| 国产亚洲一区二区手机在线观看| 免费成人在线观看视频| 国产婷婷精品| 51精产品一区一区三区| 欧美aaaaaaaa牛牛影院| 99亚洲乱人伦aⅴ精品| 欧美激情在线精品一区二区三区| 欧美区亚洲区| 日本麻豆一区二区三区视频| 欧美一区网站| 国产精品久久久久久久免费软件| 日韩精品麻豆| 日本精品在线一区| 天堂√中文最新版在线| 四虎成人av| 在线人成日本视频| 丁香六月综合| 欲香欲色天天天综合和网| 91欧美大片| 91精品综合久久久久久久久久久 | 欧美成人精品午夜一区二区| 欧美日韩亚洲三区| 亚洲伦伦在线| 欧美韩国一区| 国产一区二区三区四区大秀| 国产欧美日韩| 深夜福利一区| 精品国产精品久久一区免费式| 精品国产aⅴ| 小说区图片区色综合区| 国产电影一区二区在线观看| 欧美日韩国产在线一区| 国产亚洲精品v| 色欧美自拍视频| 日韩深夜视频| 日本中文字幕视频一区| 青青青伊人色综合久久| 麻豆高清免费国产一区| 国模大尺度视频一区二区| 午夜精品福利影院| 成人在线免费观看91| 久久一区二区三区电影| 午夜欧美精品| 美国三级日本三级久久99 | 国产精品香蕉| 天天久久夜夜| 免播放器亚洲| 精精国产xxx在线视频app| 福利一区二区三区视频在线观看 | 日韩专区中文字幕一区二区| 一区在线不卡| 66精品视频在线观看| 亚洲二区精品| 视频一区二区三区在线| 日本国产亚洲| 欧美精品三级在线| 国产精品天天看天天狠| 好看的日韩av电影| 高潮在线视频| 日本va欧美va欧美va精品| 午夜先锋成人动漫在线| 91精品一区二区三区综合在线爱| 国产农村妇女精品一区二区| 亚洲优女在线| 亚洲最大av| 欧美18免费视频| 欧美专区一区二区三区| 91成人在线| 日韩av资源网| 蜜臀91精品国产高清在线观看| 美女久久一区| 国产伦理一区| 亚洲开心激情| 国产一区二区精品| 欧美性www| 日韩电影在线观看一区| 亚洲第一偷拍| 精品三区视频| 亚洲宅男一区| 伊人久久大香线蕉av超碰演员| 精品视频一区二区三区四区五区| 欧美区一区二区| 国产韩日影视精品| 日韩经典一区| 日韩精品中文字幕一区二区| 亚洲激情不卡| 99精品热视频只有精品10| 秋霞午夜一区二区三区视频| 亚洲视频1区| 日本成人在线电影网| 台湾亚洲精品一区二区tv| 欧美mv日韩| 国产剧情一区| 黄色精品一区| 国产日韩一区二区三区在线播放 | 精品91福利视频| 天堂av在线一区| 亚洲影视一区二区三区| 蜜桃精品噜噜噜成人av| 二吊插入一穴一区二区| 久久伊人影院| 免费视频最近日韩| 久久av网址| 久久国产精品99国产| 国产高清精品二区| 一本一道久久a久久精品蜜桃| 久久精品av麻豆的观看方式| 精品久久久久久久久久久aⅴ| 日本在线啊啊| 亚洲3区在线| 欧美特黄aaaaaaaa大片| 日韩一级电影| 中文在线аv在线| 国产日韩欧美中文在线| 手机在线观看av| av一级亚洲| 精品日本视频| 亚洲网站视频| 日本不卡一区二区| 在线一区电影| 成人在线视频国产| 丝袜美腿一区二区三区| 日韩高清影视在线观看| 免费久久99精品国产| 日本人妖一区二区| 亚洲综合电影| 台湾亚洲精品一区二区tv| 美日韩一区二区| 希岛爱理一区二区三区| 亚洲人体av| 免费高清在线一区| 99久久婷婷国产综合精品青牛牛| 欧美国产大片| 久久一区91| 国产精品视频一区视频二区| 免费高清成人在线| 好吊妞视频这里有精品| 美女网站一区二区| 在线观看日韩| 精品国产一区二| 先锋欧美三级| 亚洲精品成人| 同性恋视频一区| 成人国产网站| 99在线精品免费视频九九视 | 色777狠狠狠综合伊人| 中文字幕一区二区三区日韩精品| 影音成人av| 亚洲免费高清| 91精品啪在线观看国产手机| 成人免费一区| 国产麻豆综合| 精品国产aⅴ| 综合天堂av久久久久久久| 成人在线丰满少妇av| 久久精品色播| 欧美中文高清| av成人在线播放| 蜜桃伊人久久| 99tv成人| 精品午夜视频| 日韩高清欧美激情| 91亚洲一区| 精品一区在线| 亚洲视频一起| 欧美激情亚洲| 日韩三区四区| 欧美gayvideo| 狠狠爱www人成狠狠爱综合网| 中文久久电影小说| 久久综合社区|